Metadata Dataplex

Panduan ini menjelaskan metadata Dataplex dan cara Anda dapat menggunakan Dataplex API untuk mengelolanya.

Ringkasan

Dataplex memindai hal berikut:

  • Aset data terstruktur dan semi-terstruktur dalam data lake, untuk mengekstrak metadata tabel ke dalam entity tabel
  • Data tidak terstruktur, seperti gambar dan teks, untuk mengekstrak metadata set file menjadi entitas set file

Anda dapat menggunakan Dataplex Metadata API untuk melakukan hal berikut:

  • Melihat, mengedit, dan menghapus metadata entitas tabel dan set file
  • Membuat metadata entitas tabel atau set file Anda sendiri

Anda dapat menganalisis metadata Dataplex menggunakan hal berikut:

  • Data Catalog untuk penelusuran dan pemberian tag
  • Dataproc Metastore dan BigQuery untuk pemrosesan analisis dan kueri metadata tabel

Dataplex API

Bagian ini merangkum Dataplex API dan resource utama yang terkait.

API bidang kontrol

API bidang kontrol Dataplex memungkinkan pembuatan dan pengelolaan resource data lake, zona, dan aset.

  • Data lake: Instance layanan Dataplex yang memungkinkan pengelolaan resource penyimpanan di seluruh project dalam organisasi.

  • Zona: pengelompokan aset secara logis dalam data lake. Gunakan beberapa zona dalam data lake untuk mengatur data berdasarkan kesiapan, beban kerja, atau struktur organisasi.

  • Aset: Resource penyimpanan, dengan data yang disimpan di bucket Cloud Storage atau set data BigQuery, yang dilampirkan ke zona dalam data lake.

Metadata API

Gunakan Dataplex Metadata API untuk membuat dan mengelola metadata dalam partisi, entitas tabel, dan set file. Dataplex memindai aset data, baik di data lake maupun yang disediakan oleh Anda, untuk membuat entity dan partisi. Entitas dan partisi mempertahankan referensi ke lokasi penyimpanan fisik dan aset terkait.

Konsep utama

Entity tabel:

Metadata untuk data terstruktur dengan skema yang jelas. Entity tabel diidentifikasi secara unik oleh ID entity dan lokasi data. Metadata entitas tabel dapat dibuat kuerinya di BigQuery dan Metastore Dataproc:

  • Objek Cloud Storage: Metadata untuk objek Cloud Storage, yang diakses melalui Cloud Storage API.
  • Tabel BigQuery: Metadata untuk tabel BigQuery, yang diakses melalui BigQuery API.
Entitas set file:

Metadata tentang data tidak terstruktur, biasanya tanpa skema. Set file diidentifikasi secara unik berdasarkan ID entitas dan lokasi data. Setiap set file memiliki format data.

Partisi:

Metadata untuk subset data dalam entitas tabel atau set file, yang diidentifikasi oleh kumpulan key-value pair dan lokasi data.

Coba API

Gunakan halaman dokumentasi referensi API lakes.zones.entities dan lakes.zones.partitions Dataplex untuk melihat parameter dan kolom yang terkait dengan setiap API. Gunakan panel Coba API ini yang menyertai dokumentasi referensi untuk setiap metode API guna membuat permintaan API menggunakan parameter dan kolom yang berbeda. Anda dapat membuat, melihat, dan mengirimkan permintaan tanpa perlu membuat kredensial, lalu melihat respons yang ditampilkan oleh layanan.

Bagian berikut memberikan informasi untuk membantu Anda memahami dan menggunakan Dataplex Metadata API.

Entity

Mencantumkan entity

Untuk membatasi daftar entitas yang ditampilkan oleh layanan, tambahkan parameter kueri filter ke URL permintaan list entities.

Mendapatkan entity

Secara default, respons Get Entity berisi metadata entity dasar. Untuk mengambil metadata skema tambahan, tambahkan parameter kueri view ke URL permintaan.

Detail kompatibilitas: Meskipun metadata Dataplex didaftarkan secara terpusat di metadata API, hanya metadata tabel entity yang kompatibel dengan BigQuery dan Apache Hive Metastore yang dipublikasikan ke BigQuery dan Dataproc Metastore. Get Entity API menampilkan pesan CompatibilityStatus, yang menunjukkan apakah metadata tabel kompatibel dengan BigQuery dan Hive Metastore, dan jika tidak, alasan ketidakcocokan tersebut.

Memperbarui entity

Gunakan API ini untuk mengedit metadata entitas, termasuk apakah Anda atau Dataplex akan mengelola metadata entitas.

  • API ini melakukan penggantian penuh semua kolom Entity yang dapat diubah. Kolom Entitas berikut tidak dapat diubah, dan jika Anda menentukannya dalam permintaan update, kolom tersebut akan diabaikan:
  • Tentukan nilai untuk semua kolom Entity yang dapat diubah, termasuk semua kolom skema, meskipun nilainya tidak diubah.
  • Berikan kolom etag. Anda bisa mendapatkan etag dengan terlebih dahulu mengirimkan permintaan entities.get, yang menampilkan etag entity dalam respons.
  • Memperbarui kolom skema: Anda dapat memperbarui skema tabel yang ditemukan oleh Dataplex untuk meningkatkan akurasinya:
    • Jika skema adalah fileset, kosongkan semua kolom skema.
    • Untuk menentukan kolom berulang, tetapkan mode ke REPEATED. Untuk menentukan kolom struct, tetapkan type ke RECORD.
    • Anda dapat menetapkan kolom userManaged skema untuk menentukan apakah Anda atau Dataplex mengelola metadata tabel. Setelan defaultnya adalah dikelola Dataplex. Jika userManaged disetel ke benar (true), setelan ini disertakan dalam informasi yang ditampilkan dari permintaan entities.get jika EntityView disetel ke SCHEMA atau FULL.
  • Memperbarui kolom partisi:
    • Untuk data yang dipartisi dengan gaya non-Hive, penemuan Dataplex akan otomatis membuat kunci partisi. Misalnya, untuk jalur data gs://root/2020/12/31, kunci partisi p0, p1, dan p2 akan dihasilkan. Untuk membuat kueri lebih intuitif, Anda dapat mengupdate p0, p1, dan p2 menjadi year, month, dan day.
    • Jika Anda memperbarui gaya partisi ke gaya HIVE, kolom partisi tidak dapat diubah.
  • Memperbarui kolom metadata lainnya: Anda dapat memperbarui kolom mimeType, CompressionFormat, CsvOptions, dan JsonOptions yang dibuat otomatis untuk membantu penemuan Dataplex. Penemuan Dataplex akan menggunakan nilai baru pada pengoperasian berikutnya.

Buat entity

Gunakan entities.create API untuk membuat entity metadata tabel atau set file. Isi kolom wajib diisi dan kolom opsional yang relevan, atau izinkan layanan penemuan Dataplex mengisi kolom opsional.

Menghapus entity

  • Berikan kolom etag. Anda bisa mendapatkan etag dengan terlebih dahulu mengirimkan permintaan entities.get, yang menampilkan etag entity dalam respons.

Jika data pokok untuk tabel atau set file di zona mentah dihapus, metadata tabel atau set file akan otomatis dihapus setelah pemindaian Discovery berikutnya. Jika data pokok untuk tabel di zona yang diseleksi dihapus, metadata tabel tidak akan dihapus, tetapi tindakan data yang hilang akan dilaporkan. Untuk mengatasi masalah ini, hapus entitas metadata tabel secara eksplisit melalui metadata API.

Partisi

Mencantumkan partisi

Untuk membatasi daftar partisi yang ditampilkan oleh layanan, tambahkan parameter kueri filter ke URL permintaan list partitions.

Contoh:

  • ?filter="Country=US AND State=CA AND City=Sunnyvale"
  • ?filter="year < 2000 AND month > 12 AND Date > 10"

Mendapatkan partisi

Untuk mendapatkan partisi, Anda harus melengkapi URL permintaan dengan menambahkan nilai kunci partisi ke akhir URL, yang diformat untuk dibaca sebagai partitions/value1/value2/…./value10.

Contoh: jika partisi memiliki nilai, {Country=US, State=CA, City=Sunnyvale}, URL permintaan get harus diakhiri dengan /partitions/US/CA/Sunnyvale.

Penting: Nilai URL yang ditambahkan harus dienkode ganda. Misalnya, url_encode(url_encode(value)) dapat digunakan untuk mengenkode "US:CA/CA#Sunnyvale" sehingga URL permintaan berakhir dengan /partitions/US%253ACA/CA%2523Sunnyvale. Kolom nama dalam respons mempertahankan format yang dienkode.

Membuat partisi

Untuk membuat partisi yang disesuaikan untuk sumber data Anda, gunakan partitions.create API. Tentukan kolom location yang diperlukan dengan jalur Cloud Storage.

Menghapus partisi

Lengkapi URL permintaan dengan menambahkan nilai kunci partisi ke akhir URL permintaan, yang diformat untuk dibaca sebagai partitions/value1/value2/…./value10.

Contoh: jika partisi memiliki nilai, {Country=US, State=CA, City=Sunnyvale}, URL permintaan harus diakhiri dengan /partitions/US/CA/Sunnyvale.

Penting: Nilai URL yang ditambahkan harus sesuai dengan RFC-1034 atau harus dienkode ganda, misalnya, US:/CA#/Sunnyvale sebagai US%3A/CA%3A/Sunnyvale.

Langkah selanjutnya