Data Discover

Panduan ini menjelaskan cara mengaktifkan dan menggunakan Penemuan Dataplex. Discovery memindai dan mengekstrak metadata dari data dalam data lake dan mendaftarkannya ke Dataproc Metastore, BigQuery, dan Data Catalog untuk analisis, penelusuran, dan eksplorasi.

Ringkasan

Untuk setiap aset Dataplex yang mengaktifkan Discovery, Dataplex akan melakukan hal berikut:

  • Memindai data yang terkait dengan aset.
  • Mengelompokkan file terstruktur dan semi-terstruktur ke dalam tabel.
  • Mengumpulkan metadata teknis, seperti nama tabel, skema, dan definisi partisi.

Untuk data tidak terstruktur, seperti gambar dan video, Dataplex Discovery otomatis mendeteksi dan mendaftarkan grup file yang berbagi jenis media sebagai kumpulan file. Misalnya, jika gs://images/group1 berisi gambar GIF, dan gs://images/group2 berisi gambar JPEG, Dataplex Discovery akan mendeteksi dan mendaftarkan dua set file. Untuk data terstruktur, seperti Avro, Discovery mendeteksi file hanya jika file tersebut berada di folder yang berisi format dan skema data yang sama.

Tabel dan kumpulan file yang ditemukan akan didaftarkan di Data Catalog untuk penelusuran dan penemuan. Tabel akan muncul di Dataproc Metastore sebagai tabel bergaya Hive, dan di BigQuery sebagai tabel eksternal, sehingga data otomatis tersedia untuk dianalisis.

Discovery mendukung format data terstruktur dan semi-terstruktur berikut:

Discovery mendukung format kompresi berikut untuk data terstruktur dan semi-terstruktur:

  • Kompresi internal untuk format berikut:

    Kompresi Contoh ekstensi file Format yang didukung
    gzip .gz.parquet Parquet
    lz4 .lz4.parquet Parquet
    Bertali .snappy.parquet Parquet, ORC, Avro
    Lzo .lzo.parquet Parquet, ORC
  • Kompresi eksternal untuk file JSON dan CSV:

    • gzip
    • bzip2

Konfigurasi Discovery

Discovery diaktifkan secara default saat Anda membuat zona atau aset baru. Anda dapat menonaktifkan Discovery di tingkat zona atau aset.

Saat membuat zona atau aset, Anda dapat memilih untuk mewarisi setelan Discovery di tingkat zona, atau mengganti setelan Discovery di level aset.

Berikut adalah opsi konfigurasi Discovery yang tersedia di tingkat zona dan aset:

  • Penemuan aktif dan nonaktif.

  • Jadwal penemuan: Opsi ini dapat disetel ke jadwal yang telah ditentukan sebelumnya—misalnya, setiap jam atau harian, atau jadwal kustom yang ditentukan oleh format cron. Aset baru akan dipindai saat ditambahkan. Untuk informasi selengkapnya, lihat Mengonfigurasi jadwal cron. Direkomendasikan: Jadwalkan Penemuan untuk dijalankan setiap jam atau lebih jarang.

  • Sertakan atau kecualikan pola: Tentukan file yang akan disertakan atau dikecualikan dari pemindaian Discovery, dengan menggunakan pola glob di jalur sertakan atau kecualikan. Misalnya, jika Anda ingin mengecualikan gs://test_bucket/foo/.. dari discovery, masukkan **/foo/* sebagai jalur pengecualian. Tanda kutip dapat menyebabkan error. Pastikan Anda memasukkan **/foo/*, bukan "**/foo/*".) Fungsi ini hanya tersedia untuk aset Cloud Storage. Jika pola sertakan dan kecualikan ada secara bersamaan, pola kecualikan akan diterapkan terlebih dahulu.

  • Spesifikasi JSON atau CSV: Memungkinkan Anda memberikan informasi tambahan tentang data semi-terstruktur, seperti CSV dan JSON, untuk meningkatkan akurasi hasil Discovery.

    • Untuk file CSV, Anda dapat memberikan hal berikut:

      • Pemisah: Kolom ini menerima satu karakter, kecuali \r dan \n. Jika lebih dari satu karakter disediakan, hanya karakter pertama string yang akan digunakan. Jika tidak diberikan, Discovery menggunakan koma sebagai pembatas.

      • Jumlah baris header: Kolom ini menerima nilai 0 atau 1. Nilai defaultnya adalah 0. Jika nilainya 0, Discovery akan melakukan inferensi header, dan jika header terdeteksi, Discovery akan mengekstrak nama kolom dari header dan mereset nilai tersebut ke 1.

      • Encoding: Kolom ini menerima nama encoding string, seperti UTF-8, US-ASCII, atau ISO-8859-1. Jika tidak ada yang ditentukan, UTF-8 akan digunakan sebagai default.

      • Nonaktifkan inferensi jenis: Kolom ini menerima nilai Boolean. Atribut ini ditetapkan ke false secara default. Untuk data CSV, jika Anda menonaktifkan inferensi jenis, semua kolom akan didaftarkan sebagai string.

    • Untuk file JSON, Anda dapat memberikan salah satu dari hal berikut:

      • Encoding: Kolom ini menerima nama encoding string, seperti UTF-8, US-ASCII, atau ISO-8859-1. Jika tidak ada yang ditentukan, UTF-8 akan digunakan sebagai default.

      • Nonaktifkan inferensi jenis data: Kolom ini menerima nilai Boolean. Atribut ini ditetapkan ke false secara default. Untuk data JSON, jika Anda menonaktifkan inferensi jenis, semua kolom akan didaftarkan sebagai jenis primitifnya (string, angka, atau boolean).

Memublikasikan metadata

Saat Anda membuat zona data di lake Dataplex, Dataplex akan membuat set data BigQuery di project yang berisi lake tersebut. Dataplex memublikasikan tabel ke dalam set data tersebut untuk tabel yang ditemukan di bucket Cloud Storage yang ditambahkan ke zona data sebagai aset. Set data ini disebut sebagai set data publikasi metadata yang sesuai dengan zona.

Setiap zona data Dataplex dipetakan ke set data di BigQuery atau database di Dataproc Metastore, tempat informasi metadata tersedia secara otomatis.

Anda dapat mengedit metadata yang ditemukan secara otomatis, seperti nama atau skema tabel, menggunakan API metadata Dataplex.

Melihat tabel dan kumpulan file yang ditemukan

Anda dapat menelusuri tabel dan kumpulan file yang ditemukan dalam tampilan Penelusuran Dataplex di Konsol Google Cloud.

Buka Penelusuran

Untuk hasil penelusuran yang lebih akurat, gunakan filter khusus Dataplex, seperti nama danau dan zona data. 50 item teratas per faset ditampilkan pada daftar filter. Anda dapat menemukan item tambahan menggunakan kotak penelusuran.

Setiap entri berisi metadata teknis dan operasional yang mendetail.

Dari halaman detail entri, Anda dapat membuat kueri tabel di BigQuery dan melihat detail pendaftaran Dataproc Metastore yang sesuai.

Jika tabel Cloud Storage dapat dipublikasikan ke BigQuery sebagai tabel eksternal, Anda dapat melihat berikut ini dalam tampilan detail entrinya:

  • Referensi tabel eksternal BigQuery
  • Tombol Buka di BigQuery untuk mulai menganalisis data di BigQuery.

Entri metadata Dataplex langsung terlihat dan dapat ditelusuri di Data Catalog. Untuk mempelajari lebih lanjut, lihat referensi Penelusuran Katalog Data.

Semua entri yang ditemukan dapat dilihat melalui API metadata Dataplex.

Tindakan penemuan

Discovery memicu tindakan administrator berikut setiap kali masalah terkait data terdeteksi selama pemindaian.

Format data tidak valid

Tindakannya meliputi:

  • Format data yang tidak konsisten dalam sebuah tabel. Misalnya, file dengan format yang berbeda memiliki awalan tabel yang sama.

  • Format data tidak valid dalam zona pilihan (data tidak dalam format Avro, Parquet, atau ORC).

Skema tidak kompatibel

Tindakannya meliputi:

  • Skema yang terdeteksi oleh Discovery tidak kompatibel dengan skema tabel yang aktif di metadata API di Dataproc Metastore. Skema A dan skema B tidak kompatibel jika:

    • A dan B berbagi kolom dengan nama yang sama, tetapi dengan jenis data yang berbeda dan tidak kompatibel. Misalnya, string dan bilangan bulat.

    • A dan B tidak memiliki {i>field<i} yang tumpang tindih.

    • A dan B memiliki setidaknya satu kolom non-nullable yang tidak ditemukan di skema lainnya.

  • Skema penyimpangan terhadap skema yang dikelola pengguna dalam zona pilihan.

Definisi partisi tidak valid

Tindakannya meliputi:

  • Penamaan partisi tidak konsisten. Misalnya, gs://sales_data/year=2020/month=10/day=01 dan gs://sales_data/year=2020/region=us.

  • Penamaan partisi gaya Non-Hive di zona data yang diseleksi. Misalnya, gs://sales_data/2020/10/01, bukan gs://sales_data/year=2020/month=10/day=01.

Data tidak ada

Tindakannya meliputi:

  • Dalam zona data yang diseleksi, data pokok untuk tabel atau kumpulan file terdaftar tidak lagi ada. Dengan kata lain, tabel zona atau kumpulan file pilihan ditemukan dan didaftarkan, tetapi kemudian data yang mendasarinya dihapus. Anda dapat memperbaiki masalah ini dengan memulihkan data atau menghapus entri metadata.

Selesaikan tindakan Penemuan

Data yang berisi tindakan diperiksa dengan pemindaian Discovery berikutnya. Setelah masalah yang memicu tindakan tersebut telah diperbaiki, tindakan tersebut akan otomatis diselesaikan melalui pemindaian Discovery terjadwal berikutnya.

Tindakan lainnya

Selain tindakan Penemuan sebelumnya, ada tiga jenis tindakan lain yang terkait dengan status resource dan penerapan kebijakan keamanan di Dataplex.

  • Resource tidak ada: Bucket atau set data yang mendasari tidak ditemukan terkait dengan aset yang ada.

  • Resource tidak sah: Dataplex tidak memiliki izin yang memadai untuk melakukan Discovery atau menerapkan kebijakan keamanan ke bucket atau set data yang dikelola oleh Dataplex

  • Masalah terkait penerapan kebijakan keamanan: Kebijakan keamanan yang ditentukan untuk lake, zona, atau aset tertentu tidak berhasil disebarkan ke bucket atau set data yang mendasarinya. Meskipun semua tindakan lainnya berada di level aset, jenis tindakan ini dapat ditingkatkan di level lake, zona, dan aset.

Jenis tindakan ini akan otomatis diselesaikan saat masalah resource atau konfigurasi keamanan yang mendasarinya telah diperbaiki.

FAQ

Apa yang harus saya lakukan jika skema yang disimpulkan oleh Discovery salah?

Jika skema yang disimpulkan berbeda dari yang diharapkan untuk tabel tertentu, Anda dapat mengganti skema yang disimpulkan dengan memperbarui metadata menggunakan metadata API. Pastikan untuk menyetel userManaged ke true agar hasil edit Anda tidak ditimpa di pemindaian Discovery berikutnya.

Bagaimana cara mengecualikan file dari pemindaian Discovery?

Secara default, Discovery mengecualikan jenis file tertentu dari pemindaian, termasuk:

  • _SUCCESS
  • _started
  • _committed
  • _metadata, _METADATA, _Metadata
  • _common_metadata, _COMMON_METADATA
  • File yang diawali dengan README atau readme
  • Direktori yang dimulai dengan base_, delta_, delete_delta_, bucket_, diikuti dengan angka
  • Direktori yang dimulai dengan .

Anda dapat menentukan pola sertakan atau kecualikan lainnya menggunakan konfigurasi Discovery di level zona atau aset, atau dengan menggunakan metadata API.

Apa yang harus saya lakukan jika pengelompokan tabel yang dideteksi oleh Discovery terlalu terperinci?

Jika tabel yang terdeteksi oleh Discovery berada pada tingkat yang lebih terperinci dibandingkan dengan jalur root tabel—misalnya, setiap partisi didaftarkan sebagai tabel, mungkin ada beberapa alasan:

  • Ada perbedaan format, seperti campuran file Avro dan Parquet, di jalur root tabel yang diharapkan, yang membagi tabel menjadi beberapa grup yang lebih kecil.

  • Ada berbagai jenis inkompatibilitas skema dalam jalur root tabel yang diharapkan, yang membagi tabel menjadi beberapa kelompok yang lebih kecil.

Anda dapat mengatasi masalah ini dengan salah satu cara berikut:

  • Memperbaiki perbedaan format atau skema sehingga semua file dalam jalur root tabel yang sama memiliki format yang konsisten dan skema yang kompatibel.

  • Kecualikan file heterogen menggunakan konfigurasi pola pengecualian sebagai bagian dari konfigurasi zona / aset atau API metadata.

Setelah Anda melakukan salah satu langkah korektif, pada pemindaian Discovery berikutnya, hal berikut akan terjadi:

  • Tabel dengan tingkat yang lebih rendah yang sudah ada akan otomatis dihapus dari Dataplex metadata API, BigQuery, Dataproc Metastore, dan Data Catalog.
  • Tabel baru pada tingkat yang lebih tinggi dengan jalur root tabel yang diharapkan akan dibuat.

Bagaimana cara menentukan nama tabel?

Anda dapat menentukan nama tabel dengan menggunakan API metadata.

Apa yang terjadi jika saya membuat tabel secara manual di Dataproc atau BigQuery?

Jika Discovery diaktifkan untuk aset tertentu, Anda tidak perlu mendaftarkan entri secara manual di Dataproc Metastore atau BigQuery.

Anda dapat menentukan nama tabel, skema, dan definisi partisi secara manual, sekaligus menonaktifkan Dataplex Discovery. Atau, lakukan langkah berikut:

  1. Buat tabel dengan hanya menentukan informasi yang diperlukan, seperti jalur root tabel.
  2. Gunakan Dataplex Discovery untuk mengisi metadata lainnya, seperti definisi skema dan partisi.
  3. Selalu perbarui metadata.

Apa yang harus saya lakukan jika tabel saya tidak muncul di BigQuery?

Meskipun semua metadata Dataplex terdaftar secara terpusat di API metadata, hanya tabel Cloud Storage yang kompatibel dengan BigQuery yang dipublikasikan ke BigQuery sebagai tabel eksternal. Sebagai bagian dari detail entri tabel di metadata API, Anda dapat menemukan penanda kompatibilitas BigQuery yang menunjukkan entity mana yang dipublikasikan ke BigQuery dan alasannya.

Apa langkah selanjutnya?