Menemukan dan membuat katalog data Cloud Storage
Dokumen ini menjelaskan cara menggunakan penemuan otomatis Dataplex, yaitu fitur di BigQuery yang memungkinkan Anda memindai data di bucket Cloud Storage untuk mengekstrak, lalu membuat katalog metadata. Sebagai bagian dari pemindaian penemuan, penemuan otomatis membuat tabel BigLake atau eksternal untuk data terstruktur dan tabel objek untuk data tidak terstruktur. Data tabel terpusat ini memudahkan insight data, keamanan data, dan tata kelola yang didukung AI.
Untuk menggunakan penemuan otomatis data Cloud Storage, Anda membuat dan menjalankan pemindaian penemuan.
Ringkasan pemindaian penemuan
Pemindaian penemuan melakukan hal berikut:
- Memindai data di bucket atau jalur Cloud Storage.
- Mengelompokkan data terstruktur dan semi-terstruktur ke dalam tabel.
- Mengumpulkan metadata, seperti nama tabel, skema, dan definisi partisi.
- Membuat dan memperbarui tabel BigLake, eksternal, atau objek di BigQuery menggunakan skema dan definisi partisi.
Untuk data tidak terstruktur, seperti gambar dan video, pemindaian penemuan
mendeteksi dan mendaftarkan grup file yang memiliki jenis media yang sama dengan
tabel objek BigLake. Misalnya, jika gs://images/group1
berisi gambar GIF, dan gs://images/group2
berisi gambar JPEG,
pemindaian penemuan akan mendeteksi dan mendaftarkan dua set file.
Untuk data terstruktur, seperti Avro, pemindaian penemuan mendaftarkan grup file sebagai tabel eksternal BigLake dan mendeteksi file hanya jika file tersebut berada di folder yang berisi format data yang sama dan skema yang kompatibel.
Pemindaian penemuan mendukung format data terstruktur dan semi-terstruktur berikut:
- Parquet
- Avro
- ORC
- JSON (hanya format yang dibatasi baris baru)
- CSV (tetapi bukan file CSV yang memiliki baris komentar)
Pemindaian penemuan 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 Snappy .snappy.parquet
Parquet, ORC, Avro lzo .lzo.parquet
Parquet, ORC Kompresi eksternal untuk file JSON dan CSV:
- gzip
- bzip2
Untuk melihat batas jumlah tabel yang didukung pemindaian penemuan, lihat Kuota dan batas.
Tabel yang ditemukan didaftarkan di BigQuery sebagai tabel eksternal BigLake, tabel objek BigLake, atau tabel eksternal. Hal ini membuat data mereka tersedia untuk dianalisis di BigQuery. Penyimpanan metadata ke dalam cache untuk tabel BigLake dan tabel objek juga diaktifkan. Semua tabel BigLake akan otomatis ditransfer ke katalog universal BigQuery untuk penelusuran dan penemuan.
Sebelum memulai
Enable the Dataplex API.
Peran yang diperlukan untuk akun layanan Dataplex
Sebelum memulai, tetapkan izin IAM ke akun layanan Dataplex di project Anda.
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com
Ganti PROJECT_NUMBER
dengan project tempat Dataplex API diaktifkan.
Untuk memastikan bahwa akun layanan Dataplex memiliki izin yang diperlukan untuk membuat dan menjalankan pemindaian penemuan, minta administrator untuk memberikan akun layanan Dataplex peran IAM berikut:
-
Dataplex Discovery Service Agent (
roles/dataplex.discoveryServiceAgent
) di bucket penyimpanan -
Dataplex Discovery Publishing Service Agent (
roles/dataplex.discoveryPublishingServiceAgent
) di project pengguna -
Membuat tabel BigLake:
BigLake Publishing Service Agent Dataplex Discovery (
roles/dataplex.discoveryBigLakePublishingServiceAgent
) di koneksi BigQuery
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk membuat dan menjalankan pemindaian penemuan. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat dan menjalankan pemindaian penemuan:
-
bigquery.datasets.create
di project sumber data -
storage.buckets.get
di bucket sumber data -
storage.objects.get
di bucket sumber data -
storage.objects.list
di bucket sumber data -
bigquery.datasets.get
di project sumber data -
Berikan koneksi:
-
bigquery.connections.delegate
pada koneksi BigQuery -
bigquery.connections.use
pada koneksi BigQuery
-
Administrator Anda mungkin juga dapat memberikan izin ini kepada akun layanan Dataplex dengan peran khusus atau peran bawaan lainnya.
Peran yang diperlukan untuk akun layanan koneksi BigQuery
Untuk memastikan akun Layanan Koneksi BigQuery memiliki izin yang diperlukan untuk membuat pemindaian penemuan, minta administrator Anda untuk memberikan peran IAM Agen Layanan Penemuan Dataplex (roles/dataplex.discoveryServiceAgent
) kepada akun Layanan Koneksi BigQuery di bucket Cloud Storage.
Peran bawaan ini berisi izin yang diperlukan untuk membuat pemindaian penemuan. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat pemindaian penemuan:
-
bigquery.datasets.create
di project sumber data -
storage.buckets.get
di bucket sumber data -
storage.objects.get
di bucket sumber data -
storage.objects.list
di bucket sumber data -
bigquery.datasets.get
di project sumber data -
Berikan koneksi:
-
bigquery.connections.delegate
pada koneksi BigQuery -
bigquery.connections.use
pada koneksi BigQuery
-
Administrator Anda mungkin juga dapat memberikan izin ini kepada akun Layanan Koneksi BigQuery dengan peran khusus atau peran bawaan lainnya.
Peran yang diperlukan untuk pengguna akhir
Untuk mendapatkan izin yang Anda perlukan guna membuat dan mengelola pemindaian penemuan data, minta administrator untuk memberi Anda peran IAM berikut di bucket Cloud Storage:
-
Akses penuh ke resource DataScan:
Dataplex DataScan Administrator (
roles/dataplex.dataScanAdmin
) - project Anda -
Akses tulis ke resource DataScan:
Dataplex DataScan Editor (
roles/dataplex.dataScanEditor
) - project Anda -
Akses baca ke resource DataScan, tidak termasuk hasilnya:
Dataplex DataScan Viewer (
roles/dataplex.dataScanViewer
) - project Anda -
Akses baca ke resource DataScan, termasuk hasilnya:
Dataplex DataScan DataViewer (
roles/dataplex.dataScanDataViewer
) - project Anda
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk membuat dan mengelola pemindaian penemuan data. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk membuat dan mengelola pemindaian penemuan data:
-
Buat DataScan:
dataplex.datascans.create
di project Anda -
Menghapus DataScan:
dataplex.datascans.delete
di project atau resource DataScan Anda -
Melihat detail DataScan yang tidak menyertakan hasil:
dataplex.datascans.get
di proyektor, resource DataScan -
Melihat detail DataScan termasuk hasilnya:
dataplex.datascans.getData
di project Anda atau resource DataScan -
Mencantumkan DataScan:
dataplex.datascans.list
di project atau resource DataScan Anda -
Jalankan DataScan:
dataplex.datascans.run
di project Anda atau resource DataScan -
Memperbarui deskripsi DataScan:
dataplex.datascans.update
di proyektor Anda, resource DataScan -
Melihat izin IAM DataScan:
dataplex.datascans.getIamPolicy
pada project Anda atau resource DataScan -
Tetapkan izin IAM di DataScan:
dataplex.datascans.setIamPolicy
di project Anda atau resource DataScan
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Membuat pemindaian penemuan
Untuk menemukan data, Anda harus membuat dan menjalankan pemindaian penemuan. Anda dapat menetapkan jadwal untuk pemindaian atau menjalankan pemindaian sesuai permintaan.
Saat pemindaian penemuan berjalan, pemindaian tersebut akan membuat set data baru di BigQuery yang sesuai dengan bucket Cloud Storage yang dipindai. Nama set data BigQuery sama dengan nama bucket Cloud Storage. Karakter yang tidak valid dalam nama bucket akan diganti dengan garis bawah. Jika nama set data tidak tersedia, akhiran akan ditambahkan (misalnya, _discovered_001
). Set data berisi tabel eksternal BigLake atau tabel eksternal non-BigLake yang dibuat oleh pemindaian penemuan untuk analisis lebih lanjut.
Konsol
Di Google Cloud console, buka halaman Pengelolaan katalog.
Di tab Penemuan Cloud Storage, klik Create.
Di panel Create discovery scan, konfigurasikan detail tentang data yang akan dipindai.
Masukkan nama untuk pemindaian.
Di kolom Scan ID, masukkan ID unik yang mengikuti konvensi penamaan resource di Google Cloud. Jika Anda tidak memberikan ID, pemindaian penemuan akan membuat ID pemindaian.
Opsional: Berikan deskripsi pemindaian.
Untuk menentukan bucket Cloud Storage yang berisi file yang akan dipindai, di kolom Bucket, cari dan pilih bucket.
Opsional: Tentukan data yang akan disertakan atau dikecualikan dari pemindaian penemuan dengan memberikan daftar pola glob untuk pemfilteran file.
- Sertakan: jika hanya sebagian data yang akan dipindai, berikan daftar pola glob yang cocok dengan objek yang akan disertakan.
- Kecualikan: memberikan daftar pola glob yang cocok dengan objek yang akan dikecualikan.
Misalnya, jika Anda ingin mengecualikan
gs://test_bucket/foo/..
dari pemindaian penemuan, masukkan**/foo/**
sebagai jalur pengecualian. Tanda kutip menyebabkan error. Pastikan untuk memasukkan**/foo/**
, bukan"**/foo/**"
.Jika Anda memberikan pola sertakan dan pola kecualikan, pola pengecualian akan diterapkan terlebih dahulu.
Untuk Location type, pilih Region atau Multi-region (mana saja yang tersedia).
Untuk membuat tabel BigLake dari data yang dipindai, di kolom Connection ID, berikan ID koneksi resource Google Cloud Anda. Untuk mengetahui informasi selengkapnya, lihat Koneksi resourceGoogle Cloud di BigQuery.
Anda dapat membuat ID koneksi baru di lokasi yang sama dengan lokasi set data BigQuery, yang kompatibel dengan lokasi bucket Cloud Storage.
Jika Anda tidak memberikan ID koneksi resource, pemindaian penemuan akan membuat tabel eksternal non-BigLake.
Di bagian Discovery frequency, konfigurasikan kapan Anda ingin pemindaian penemuan dijalankan:
Ulangi: pemindaian berjalan sesuai jadwal yang telah ditentukan. Berikan waktu mulai, hari untuk menjalankan pemindaian, dan frekuensi, seperti setiap jam.
On demand: pemindaian berjalan sesuai permintaan.
Opsional: Di bagian Spesifikasi JSON atau CSV, tentukan cara pemindaian memproses file JSON dan CSV. Klik Spesifikasi JSON atau CSV.
- Untuk mengonfigurasi opsi JSON, pilih Aktifkan opsi penguraian JSON.
- Nonaktifkan inferensi jenis: apakah pemindaian penemuan harus menyimpulkan jenis data saat memindai data. Jika Anda menonaktifkan inferensi jenis untuk data JSON, semua kolom akan didaftarkan sebagai jenis primitifnya, seperti string, angka, atau boolean.
- Format encoding: encoding karakter data, seperti UTF-8, US-ASCII, atau ISO-8859-1. Jika Anda tidak menentukan nilai, UTF-8 akan digunakan sebagai default.
- Untuk mengonfigurasi opsi CSV, centang Aktifkan opsi penguraian CSV.
- Nonaktifkan inferensi jenis: apakah pemindaian penemuan harus menyimpulkan jenis data saat memindai data. Jika Anda menonaktifkan inferensi jenis untuk data CSV, semua kolom akan didaftarkan sebagai string.
- Baris header: jumlah baris header, baik
0
maupun1
. Jika Anda menentukan nilai0
, pemindaian penemuan akan menyimpulkan judul dan mengekstrak nama kolom dari file. Defaultnya adalah0
. - Karakter pemisah kolom: karakter yang digunakan untuk
memisahkan nilai. Berikan satu karakter,
\r
(carriage return), atau\n
(baris baru). Default-nya adalah koma (,
). - Format encoding: encoding karakter data, seperti
UTF-8
,US-ASCII
, atauISO-8859-1
. Jika Anda tidak menentukan nilai, UTF-8 akan digunakan sebagai default.
- Untuk mengonfigurasi opsi JSON, pilih Aktifkan opsi penguraian JSON.
Setelah selesai mengonfigurasi pemindaian penemuan, klik Buat (untuk pemindaian terjadwal) atau Jalankan sekarang (untuk pemindaian on demand).
Pemindaian terjadwal dijalankan sesuai jadwal yang Anda tetapkan.
Pemindaian on demand dijalankan sekali pada awalnya saat Anda membuatnya, dan Anda dapat menjalankan pemindaian kapan saja. Diperlukan waktu beberapa menit agar pemindaian penemuan berjalan.
gcloud
gcloud alpha dataplex datascans create data-discovery --location=LOCATION --data-source-resource=BUCKET_PATH
Ganti kode berikut:
LOCATION
: lokasi tempat Anda ingin membuat pemindaian penemuanBUCKET_PATH
: jalur Cloud Storage dari bucket yang ingin Anda pindai
REST
Untuk membuat pemindaian penemuan, gunakan metode dataScans.create
.
Membuat kueri tabel BigLake yang dipublikasikan
Setelah Anda menjalankan pemindaian penemuan, tabel BigLake akan dipublikasikan dalam set data baru di BigQuery. Tabel tersebut kemudian tersedia untuk analisis di BigQuery menggunakan SQL, atau di Dataproc menggunakan Apache Spark atau HiveQL.
SQL
Anda dapat melihat atau membuat kueri tabel di BigQuery. Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri di BigQuery, lihat Menjalankan kueri.
Apache Spark
Untuk membuat kueri tabel BigLake menggunakan Spark SQL pada tugas serverless Dataproc, ikuti langkah-langkah berikut:
Buat skrip PySpark yang mirip dengan contoh skrip berikut:
from pyspark.sql import SparkSession session = ( SparkSession.builder.appName("testing") .config("viewsEnabled","true") .config("materializationDataset", "DATASET_ID") .config("spark.hive.metastore.bigquery.project.id", "PROJECT_ID") .config("spark.hive.metastore.client.factory.class", "com.google.cloud.bigquery.metastore.client.BigQueryMetastoreClientFactory") .enableHiveSupport() .getOrCreate() ) session.sql("show databases").show() session.sql("use TABLE_NAME").show() session.sql("show tables").show() sql = "SELECT * FROM DATASET_ID.TABLE_ID LIMIT 10" df = session.read.format("bigquery").option("dataset", "DATASET_ID").load(sql) df.show()
Ganti kode berikut:
DATASET_ID
: ID set data yang izin buatnya dimiliki penggunaPROJECT_ID
: ID project dengan tabel BigLakeTABLE_NAME
: Nama tabel BigLakeTABLE_ID
: ID tabel BigLake
Mengelola tabel BigLake yang dipublikasikan
Tabel BigLake yang dipublikasikan dibuat dan dikelola di BigQuery oleh pemindaian penemuan. Secara default, pemindaian penemuan
menangani penemuan data baru, inferensi skema, dan evolusi skema setiap kali
pemindaian terjadwal atau on demand dijalankan. Untuk menunjukkan bahwa metadata dikelola
oleh pemindaian, pemindaian memublikasikan tabel dengan label metadata-managed-mode
ditetapkan ke discovery-managed
.
Jika Anda ingin mengelola skema dan metadata lainnya seperti opsi CSV atau JSON sendiri, tetapkan label metadata-managed-mode
ke user_managed
. Dengan cara ini, skema tetap tidak berubah saat pemindaian penemuan berikutnya berjalan. Pendekatan ini dapat
berguna dalam skenario saat skema yang disimpulkan oleh pemindaian penemuan
salah atau berbeda dengan yang diharapkan untuk tabel tertentu. Jika
label metadata-managed-mode
ditetapkan ke user_managed
, label tersebut dapat mengurangi biaya.
Untuk memperbarui label, Anda dapat mengedit nilai kunci label
metadata-managed-mode
menjadi user_managed
, bukan discovery-managed
. Dalam
hal ini, pemindaian penemuan tidak memperbarui skema tabel selama
label user_managed
dilampirkan ke tabel.
Mengupdate tabel BigLake yang dipublikasikan
Untuk tabel BigLake yang dipublikasikan menggunakan tugas pemindaian penemuan dengan konfigurasi default, skema dan metadata lainnya akan otomatis diperbarui dengan setiap tugas pemindaian penemuan yang dijalankan pada frekuensi terjadwal.
Untuk memperbarui tabel BigLake yang dipublikasikan, ikuti langkah-langkah berikut:
Di Google Cloud konsol, buka halaman BigQuery.
Di panel Explorer, luaskan project dan set data Anda, lalu pilih tabel.
Di tab Details, di bagian Labels, pastikan label metadata-managed-mode disetel ke user_managed. Jika ditetapkan ke nilai yang berbeda, ikuti langkah-langkah berikut:
Klik
Edit detail.Di samping kunci metadata-managed-mode, di kolom value, masukkan
user_managed
.
Menghapus tabel BigLake yang dipublikasikan
Untuk menghapus tabel BigLake yang dipublikasikan, ikuti langkah-langkah berikut:
Di Google Cloud konsol, buka halaman BigQuery.
Di panel Explorer, luaskan project dan set data Anda, lalu pilih tabel.
Di panel Details, di bagian Labels, pastikan label metadata-managed-mode tidak disetel ke
user_managed
. Jika ditetapkan keuser_managed
, ikuti langkah-langkah berikut:Klik Edit detail
.Di samping kunci metadata-managed-mode, di kolom value, masukkan
discovery-managed
.
Klik Run. Pemindaian penemuan berjalan sesuai permintaan.
Setelah pemindaian penemuan berjalan, tabel BigLake akan dihapus di BigQuery dan tidak tersedia untuk dicantumkan atau dikueri melalui Spark.
Menjalankan pemindaian penemuan on demand
Untuk menjalankan pemindaian penemuan sesuai permintaan, pilih salah satu opsi berikut.
Konsol
Di Google Cloud konsol, buka halaman BigQuery.
Di menu navigasi, klik Governance > Catalog management.
Di panel Penemuan Cloud Storage, klik pemindaian penemuan yang ingin dijalankan.
Klik Jalankan sekarang.
gcloud
Untuk menjalankan pemindaian penemuan, gunakan
perintah gcloud dataplex datascans run
:
gcloud dataplex datascans runDATASCAN
\ --location=LOCATION
Ganti variabel berikut:
LOCATION
: Google Cloud region tempat pemindaian penemuan dibuat.DATASCAN
: nama pemindaian penemuan.
REST
Untuk menjalankan pemindaian penemuan sesuai permintaan, gunakan
metode dataScans.run
di Dataplex API.
Mencantumkan pemindaian penemuan
Untuk mencantumkan pemindaian penemuan, pilih salah satu opsi berikut.
Konsol
Di Google Cloud konsol, buka halaman BigQuery.
Di menu navigasi, klik Governance > Catalog management.
Di panel Penemuan Cloud Storage, pemindaian penemuan yang dibuat dalam project akan dicantumkan.
gcloud
gcloud dataplex datascans list --location=LOCATION --project=PROJECT_ID
Ganti kode berikut:
LOCATION
: lokasi project AndaPROJECT_ID
: Google Cloud project ID Anda
REST
Untuk mengambil daftar pemindaian penemuan dalam project Anda, gunakan
metode dataScans.list
di Dataplex API.
Melihat pemindaian penemuan
Untuk melihat pemindaian penemuan, pilih salah satu opsi berikut.
Konsol
Di Google Cloud konsol, buka halaman BigQuery.
Di menu navigasi, klik Governance > Catalog management.
Di panel Penemuan Cloud Storage, klik pemindaian penemuan yang ingin Anda lihat detailnya.
- Bagian Detail pemindaian menampilkan detail tentang pemindaian penemuan.
- Bagian Status pemindaian menampilkan hasil penemuan tugas pemindaian terbaru.
gcloud
gcloud dataplex datascans jobs describe JOB \ --location=LOCATION \ --datascan=DATASCAN \ --view=FULL
Ganti kode berikut:
JOB
: ID tugas dari tugas pemindaian penemuan.LOCATION
: Google Cloud region tempat pemindaian penemuan dibuat.DATASCAN
: nama pemindaian penemuan tempat tugas berada.--view=FULL
: melihat hasil tugas pemindaian penemuan.
REST
Untuk melihat hasil pemindaian penemuan data, gunakan
metode dataScans.get
di Dataplex API.
Melihat hasil pemindaian penemuan historis
Untuk melihat hasil pemindaian penemuan historis, pilih salah satu opsi berikut.
Konsol
Di Google Cloud konsol, buka halaman BigQuery.
Di menu navigasi, klik Governance > Catalog management.
Di panel Penemuan Cloud Storage, klik pemindaian penemuan yang ingin Anda lihat detailnya.
Klik panel Histori pemindaian. Panel Histori pemindaian memberikan informasi tentang tugas sebelumnya, termasuk jumlah data yang dipindai di setiap tugas, status setiap tugas, dan waktu tugas dijalankan.
Untuk melihat informasi mendetail tentang tugas, klik tugas di kolom ID Tugas.
gcloud
gcloud dataplex datascans jobs list \ --location=LOCATION \ --datascan=DATASCAN
Ganti kode berikut:
LOCATION
: Google Cloud region tempat pemindaian penemuan dibuat.DATASCAN
: nama pemindaian penemuan tempat tugas berada.
REST
Untuk melihat semua tugas pemindaian penemuan, gunakan
metode dataScans.job/list
di Dataplex API.
Memperbarui pemindaian penemuan
Untuk mengubah jadwal pemindaian penemuan, misalnya untuk mengubah jadwal dari on-demand menjadi berulang, Anda perlu memperbarui pemindaian penemuan.
Konsol
Di Google Cloud konsol, buka halaman BigQuery.
Di menu navigasi, klik Governance > Catalog management.
Di panel Penemuan Cloud Storage, untuk pemindaian penemuan yang ingin Anda perbarui, klik Tindakan > Edit.
Edit the values.
Klik Simpan.
gcloud
gcloud alpha dataplex datascans update data-discovery SCAN_ID --location=LOCATION
Ganti kode berikut:
SCAN_ID
: ID pemindaian penemuan yang ingin Anda updateLOCATION
: lokasi pemindaian penemuan yang ingin Anda update
REST
Untuk memperbarui pemindaian penemuan, gunakan
metode dataScans.patch
di Dataplex API.
Menghapus pemindaian penemuan
Untuk menghapus pemindaian penemuan, pilih salah satu opsi berikut.
Konsol
Di Google Cloud konsol, buka halaman BigQuery.
Di menu navigasi, klik Governance > Catalog management.
Di panel Penemuan Cloud Storage, untuk pemindaian penemuan yang ingin Anda hapus, klik Tindakan > Hapus.
Klik Hapus.
gcloud
gcloud dataplex datascans delete SCAN_ID --location=LOCATION --async
Ganti kode berikut:
SCAN_ID
: ID pemindaian penemuan yang ingin Anda hapus.LOCATION
: lokasi pemindaian penemuan yang ingin Anda hapus.
REST
Untuk menghapus pemindaian penemuan, gunakan
metode dataScans.delete
di Dataplex API.