20 poin oleh xguru 2020-11-23 | 2 komentar | Bagikan ke WhatsApp

Ringkasan alasan perlunya Nemo, Amundsen, DataHub, dan fitur-fitur yang mereka sediakan

"Mengapa DDP diperlukan? Apa yang dikerjakannya?"

→ Platform yang membantu Anda dengan cepat mencari di mana data yang dibutuhkan berada di dalam organisasi, memahami data itu, dan mempelajari cara menggunakannya

[ Pertanyaan yang sering diajukan saat mencari data ]

→ Di mana saya bisa menemukan data "_____"? : Kadang kita bahkan tidak tahu harus mencari dengan kata apa. Cari nama tabel/kolom dengan kata seperti click, page view, dan sebagainya

→ Data ini apa? : Tabel ini punya kolom apa saja, tipe datanya apa, dan apa arti nilai-nilai ini?

→ Kepada siapa saya harus meminta hak akses? : Informasi kepemilikan data dan izin akses juga harus menjadi bagian dari metadata

→ Data ini dibuat bagaimana? Apakah bisa dipercaya? : Siapa yang membuatnya, dan melalui proses apa data ini dihasilkan? Apakah ini dibuat manual setiap bulan oleh analis? Seberapa banyak data ini digunakan di dalam perusahaan? Bagaimana lineage data ini?

→ Bagaimana saya harus menggunakan data ini? : Kolom mana yang saling terkait? Harus di-join dengan tabel yang mana? Filter apa yang harus dipakai untuk membersihkan data? Siapa yang paling sering menggunakan tabel ini? (karena bisa ditanya langsung) Kolom apa yang paling sering dipakai?

→ Seberapa sering data ini di-refresh? : Jika kadang terlambat, seberapa sering itu terjadi? Berapa rentang waktu data yang tersedia? Kalau hanya beberapa minggu, sepertinya tidak cocok untuk machine learning.

[ Fitur untuk mencari, memahami, dan menggunakan data ]

  • Mencari data, atau menemukannya dengan cara yang lebih cerdas

→ Cara dasar untuk menemukan data yang diinginkan adalah mencari metadata seperti nama kolom, deskripsi tabel dan kolom, serta penjelasan atau komentar yang dimasukkan pengguna di ElasticSearch

→ Jika hasil pencarian sangat banyak, perlu ada pemeringkatan prioritas. Dalam kasus Lyft dan Spotify, peringkat ditentukan dari seberapa sering tabel digunakan. Artinya, query log diparse lalu penggunaan tabel dimasukkan sebagai informasi ranking di ElasticSearch.

→ Nemo milik Facebook memperluas ini lebih jauh. Kata kunci pencarian di-parse sebagai bahasa alami dengan spaCy, lalu ranking ditentukan melalui scoring berbasis kNN menggunakan Unicorn yang dipakai untuk pencarian social graph

→ Cara lain adalah melalui rekomendasi. Merekomendasikan data yang paling sering diakses dan digunakan di organisasi dan tim

  • Memahami data melalui skema, preview, statistik, dan lineage

→ Informasi dasar untuk memahami tabel adalah skema data: nama kolom, tipe data, deskripsi

→ Jika pengguna punya izin baca, preview data (sekitar 100 baris) dapat disediakan

→ Statistik per kolom yang sudah dihitung sebelumnya juga bisa disediakan: jumlah row per kolom, jumlah row bernilai Null, nilai maksimum/minimum/rata-rata/median/standar deviasi, jumlah row unik, dan jika kolom tanggal maka rentang periode keseluruhan data

→ Menyediakan data lineage agar relasi dependensi sebelum dan sesudahnya juga bisa dicek: untuk pekerjaan ETL (yang dijadwalkan dengan Airflow), kita bisa melihat jadwal dan apakah terjadi keterlambatan

  • Mempelajari cara menggunakan data melalui pola penggunaan pengguna lain

→ Setelah menemukan tabel, bagaimana kita bisa membantu seseorang menggunakannya? Cara sederhana adalah menampilkan orang-orang yang terkait dengan tabel tersebut

→ Pemilik data dapat memberikan akses, dan orang yang sering menggunakannya dapat menjelaskan pengenalan atau hal-hal penting tentang data tersebut: Amundsen dan DataHub memungkinkan menghubungkan orang sebagai entitas ke tabel

→ Namun jika hanya mengandalkan pakar yang benar-benar memahami data itu, bisa timbul bottleneck, jadi pendekatan yang lebih scalable adalah menghubungkan metadata tambahan

→ Agar pengguna dapat menemukan kolom yang paling relevan, statistik penggunaan tiap kolom bisa disediakan.

→ Selain itu, agar tahu tabel mana yang harus di-join dengan tabel tersebut, akan membantu jika tersedia daftar tabel yang paling sering di-join beserta kolom join-nya. Data seperti ini memerlukan parsing query log

→ Untuk memberikan informasi yang lebih detail tentang penggunaan data, bisa juga disediakan query terbaru untuk tabel tersebut, sehingga kita dapat mengetahui data seperti apa yang benar-benar difilter dalam praktiknya.

→ Data lineage juga berguna. Kita bisa mengetahui tabel downstream yang menggunakan tabel saat ini, dan juga menampilkan query yang membuatnya. Dengan ini, kita dapat melihat bagaimana tabel digunakan untuk use case lain

→ Jika tabel downstream yang ditemukan ternyata sesuai dengan tujuan kita, menggunakan tabel itu dapat mengurangi biaya komputasi/penyimpanan.

→ Twitter Data Access Layer, Databook milik Uber, dan Metacat milik Netflix mendukung lineage

→ Sebelum benar-benar menggunakan data, orang juga ingin tahu seberapa sering data diperbarui. Akan membantu jika dijelaskan data dipartisi berdasarkan satuan waktu apa (hari/jam dan sebagainya).

→ DDP dapat terintegrasi dengan platform seperti Airflow untuk memeriksa pekerjaan ETL terjadwal dan melihat berapa lama durasinya, dan sebagainya.

[ Perbandingan tingkat atas antar DDP ]

→ Semuanya mendukung pencarian free-text berbasis ElasticSearch atau Solr. Amundsen dan Lexikon menyediakan fitur rekomendasi di homepage

→ Semuanya menampilkan informasi dasar tabel (skema, deskripsi). Amundsen dan Databook menyediakan preview data dan statistik kolom

→ Sebagian besar platform memiliki fitur data lineage bawaan. Amundsen belum mendukungnya saat ini, tetapi ada di roadmap 2020

→ Lima platform telah dirilis sebagai open source

[ Perbandingan DDP open source ]

→ Dirilis pada Februari 2020

→ Mendukung pencarian, skema tabel, kepemilikan, dan lineage

→ Mendukung tiga entitas: Dataset, User, Group. Ada rencana menambahkan entitas seperti Schemas/Jobs/Metrics/Dashboards

→ Mendukung metadata Hive, Kafka, dan RDB (secara internal mendukung lebih banyak, dan mungkin akan dibuka juga)

→ Diadopsi oleh Expedia, TypeForm, dan MS, Morgan Stanley, Orange Telecom, ThoughtWorks juga sedang melakukan POC

→ Dirilis pada Oktober 2019

→ Mendukung pencarian, rekomendasi, preview/statistik kolom/pemilik/pengguna utama yang ditampilkan dengan baik di halaman detail tabel. Belum ada fitur lineage, tetapi akan ditambahkan

→ Ada rencana juga menyediakan integrasi dengan Data Quality System (kemungkinan Great Expectations - https://greatexpectations.io/)

→ Memiliki komunitas yang sangat baik: berkontribusi dengan mengembangkan integrasi untuk BigQuery/Redshift/Apache Atlas dan lainnya

→ Mendukung integrasi dengan lebih dari 15 jenis sumber data (Redshift, Cassandra, Hive, Snowflake, dan berbagai RDB), dashboard Tableau, Redash, Mode Analytics, Airflow, dan lain-lain

→ Dokumentasinya juga baik, dan bisa diuji secara lokal dengan Docker

→ Diadopsi oleh lebih dari 30 organisasi termasuk Asana, Instacart, iRobot, dan Square.

→ Pada Juli 2020 bergabung sebagai proyek inkubasi baru di Linux AI Foundation.

→ Dirilis pada Juni 2018

→ Mencakup pencarian, tampilan skema, serta metrik untuk menganalisis biaya dan ruang

→ Memiliki fitur notifikasi untuk perubahan tabel/partisi. Bisa menerima pemberitahuan saat data dihapus karena isu seperti biaya

→ Mendukung integrasi Hive, Teradata, Redshift, S3, Cassandra, RDS

→ Pernah menyatakan sedang mengerjakan fitur versioning/validasi skema/metadata

→ Meski open source, tidak ada dokumentasi sama sekali, jadi belum ada perusahaan yang mengadopsinya.

→ Dirilis pada Oktober 2018

→ Berfokus pada kualitas data dan lineage

→ Mendukung data governance, kualitas data melalui Great Expectations, serta katalog untuk dataset dan job

→ Menyediakan WebUI, komponen Airflow, serta klien Java/Python

→ Bisa diuji secara lokal dengan Docker, tetapi dokumentasinya tidak banyak

→ Dimulai pada Juli 2015 sebagai bagian dari Data Governance Initiative

→ Versi 1.0 dirilis pada Juni 2018 dan saat ini 2.1

→ Tujuan utamanya adalah data governance, membantu organisasi memenuhi persyaratan keamanan/compliance.

→ Memiliki fitur yang kaya seperti tagging resource, propagasi tag ke dataset downstream, dan keamanan untuk akses metadata

→ Juga mendukung notifikasi perubahan metadata

→ Mendukung pencarian free-text, tampilan detail skema, dan data lineage

→ Dengan fitur pencarian lanjutan, juga mendukung pencarian dengan sintaks mirip SQL

→ Mendukung integrasi dengan sumber metadata seperti HBase, Hive, Kaflka, dan lainnya

→ Metadata juga bisa dibuat/diubah melalui REST API

→ Dokumentasinya juga bagus

  • Kasus ING yang mengadopsi Atlas dan Amundsen bersama-sama menarik: https://medium.com/wbaa/…

  • Meski bukan DDP yang lengkap, open source Whale adalah alat DDP super sederhana yang mengindeks isi data warehouse ke dalam Markdown, mendukung pencarian, modifikasi, versioning, dan sebagainya

→ Layak dilihat sebagai alat DDP untuk developer. https://github.com/dataframehq/whale

  • Tidak se-seksi machine learning, tetapi data discovery adalah langkah pertama yang penting dalam workflow data science

2 komentar

 
toughrogrammer 2020-11-23

Wah, rangkumannya benar-benar bagus. Sepertinya saya harus mencoba Amundsen.

 
xguru 2020-11-23

Nemo - platform penemuan data Facebook https://id.news.hada.io/topic?id=3024

Contoh implementasi DDP yang masih jarang ada di Korea