Panduan ini menjelaskan metadata Dataplex dan cara menggunakan Dataplex API untuk mengelolanya.
Ringkasan
Dataplex memindai hal berikut:
- Aset data terstruktur dan semi-terstruktur di dalam data lake, untuk mengekstrak metadata tabel menjadi entity tabel
- Data tidak terstruktur, seperti gambar dan teks, untuk mengekstrak metadata kumpulan file ke dalam entity kumpulan file
Anda dapat menggunakan Dataplex Metadata API untuk melakukan salah satu hal berikut:
- Melihat, mengedit, dan menghapus metadata entity tabel dan kumpulan file
- Membuat metadata entity tabel atau kumpulan file Anda sendiri
Anda juga dapat menganalisis metadata Dataplex melalui salah satu cara berikut:
- Data Catalog untuk penelusuran dan pemberian tag
- Dataproc Metastore dan BigQuery untuk kueri metadata tabel dan pemrosesan analitik
API Dataplex
Bagian ini merangkum Dataplex API dan resource utama dengannya.
API bidang kontrol
API bidang kontrol Dataplex memungkinkan pembuatan dan pengelolaan resource lake, zona, dan aset.
Lake: Instance layanan Dataplex yang memungkinkan pengelolaan resource penyimpanan di seluruh project dalam suatu organisasi.
Zona: Pengelompokan aset yang logis di dalam danau. Gunakan beberapa zona dalam suatu 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 melekat pada zona dalam suatu lake.
API Metadata
Gunakan Dataplex Metadata API untuk membuat dan mengelola metadata dalam entity dan partisi tabel dan kumpulan file. Dataplex memindai aset data, baik di lake atau yang Anda sediakan, untuk membuat entity dan partisi. Entitas dan partisi mempertahankan referensi ke aset terkait dan lokasi penyimpanan fisik.
Konsep utama
- Entity tabel:
Metadata untuk data terstruktur dengan skema yang ditentukan dengan baik. Entity tabel diidentifikasi secara unik berdasarkan ID entity dan lokasi data. Metadata entity tabel dapat dikueri di BigQuery dan Dataproc Metastore:
- 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.
- Entity set file:
Metadata tentang data tidak terstruktur, biasanya tanpa skema. Kumpulan file diidentifikasi secara unik berdasarkan ID entitas dan lokasi data. Setiap kumpulan {i>file <i}memiliki format data.
- Partisi:
Metadata untuk subset data dalam tabel atau entity kumpulan 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 menghasilkan 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 entity 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
terdaftar 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, penyebab inkompatibilitas tersebut.
Memperbarui entity
Gunakan API ini untuk mengedit metadata entity, termasuk apakah Anda atau Dataplex akan mengelola metadata entity.
- API ini melakukan penggantian penuh atas semua kolom Entity yang dapat diubah. Kolom Entity berikut tidak dapat diubah, dan jika Anda menentukannya dalam permintaan update, kolom tersebut akan diabaikan:
- Tentukan nilai untuk semua kolom Entity yang dapat berubah, termasuk semua kolom schema, meskipun nilainya tidak diubah.
- Berikan kolom
etag. Anda bisa mendapatkan etag dengan mengirimkan
permintaan entities.get terlebih dahulu,
yang menampilkan
etag
entity dalam respons. - Memperbarui kolom skema: Anda dapat memperbarui skema tabel yang ditemukan oleh Dataplex untuk meningkatkan akurasinya:
- Jika skema berupa kumpulan file, kosongkan semua kolom skema.
- Untuk menentukan kolom berulang, tetapkan mode ke
REPEATED
. Untuk menentukan kolom struct, tetapkan type keRECORD
. - Anda dapat menetapkan kolom
userManaged
pada skema untuk menentukan apakah Anda atau Dataplex mengelola metadata tabel. Setelan defaultnya adalah Dataplex dikelola. JikauserManaged
ditetapkan ke benar (true), setelan ini akan disertakan dalam informasi yang ditampilkan dari permintaanentities.get
jika EntityView ditetapkan keSCHEMA
atauFULL
.
- Mengupdate kolom partisi:
- Untuk data yang dipartisi bergaya non-Hive, penemuan Dataplex otomatis menghasilkan kunci partisi. Misalnya, untuk jalur data
gs://root/2020/12/31
, kunci partisip0
,p1
, danp2
akan dibuat. Agar proses kueri lebih intuitif, Anda dapat mengupdatep0
,p1
, danp2
masing-masing keyear
,month
, danday
. - Jika Anda memperbarui gaya partisi menjadi gaya HIVE, kolom partisi tidak dapat diubah.
- Untuk data yang dipartisi bergaya non-Hive, penemuan Dataplex otomatis menghasilkan kunci partisi. Misalnya, untuk jalur data
- Memperbarui kolom metadata lainnya: Anda dapat memperbarui kolom mimeType, CompressionFormat, <a\ l10n-encrypted-href="4j47fNIJx6fHidLzUB36HWsP3kvJXL0i3UcbX/IwKQtqc4criDhrFJJZ9ixDkxGJsonOptions Penemuan dataplex akan menggunakan nilai baru pada proses berikutnya. </a\>
Buat entity
Gunakan entities.create
API untuk membuat entity metadata tabel atau kumpulan file.
Isi kolom opsional yang wajib dan relevan, atau biarkan layanan penemuan Dataplex mengisi kolom opsional.
Menghapus entity
- Berikan kolom
etag. Anda bisa mendapatkan etag dengan mengirimkan
permintaan entities.get terlebih dahulu,
yang menampilkan
etag
entity dalam respons.
Jika data pokok untuk tabel atau kumpulan file di zona mentah dihapus, tabel atau metadata kumpulan file akan otomatis dihapus pada pemindaian Discovery berikutnya. Jika data pokok untuk tabel di zona pilihan dihapus, metadata tabel tidak akan dihapus, tetapi tindakan data yang tidak ada akan dilaporkan. Untuk mengatasi masalah ini, hapus entity 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 menyelesaikan 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 dua kali. Misalnya, url_encode(url_encode(value))
dapat
digunakan untuk mengenkode "US:CA/CA#Sunnyvale" sehingga URL permintaan diakhiri
dengan /partitions/US%253ACA/CA%2523Sunnyvale
. Kolom nama dalam respons
mempertahankan format yang dienkode.
Buat partisi
Untuk membuat partisi yang disesuaikan bagi sumber data Anda, gunakan
partitions.create
API. Tentukan kolom location yang diperlukan dengan jalur Cloud Storage.
Hapus 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 dua kali, misalnya, US:/CA#/Sunnyvale
sebagai US%3A/CA%3A/Sunnyvale
.
Apa langkah selanjutnya?
- Pelajari lebih lanjut cara mengakses metadata di Apache Spark.