Menemukan dan membuat katalog data Cloud Storage
Dokumen ini menjelaskan cara menggunakan penemuan otomatis data Cloud Storage.
Penemuan otomatis Dataplex adalah fitur di BigQuery yang memungkinkan Anda memindai data di bucket Cloud Storage untuk mengekstrak, lalu membuat katalog metadata. Sebagai bagian dari pemindaian, penemuan otomatis membuat tabel BigLake atau eksternal untuk data terstruktur dan tabel objek untuk data tidak terstruktur, yang kemudian dapat Anda gunakan untuk analisis dan AI. Tabel akan otomatis dikatalogkan di Katalog Dataplex, yang dapat Anda telusuri atau cari.
Untuk menggunakan penemuan otomatis data Cloud Storage, Anda membuat dan menjalankan pindaian penemuan.
Ringkasan
Pemindaian penemuan melakukan hal berikut:
- Memindai data di bucket atau jalur Cloud Storage.
- Mengelompokkan file 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 semiterstruktur:
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
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. Cache metadata untuk tabel BigLake dan tabel objek juga diaktifkan. Semua tabel BigLake secara otomatis ditransfer ke Katalog Dataplex untuk penelusuran dan penemuan.
Sebelum memulai
Pastikan Anda memiliki izin Identity and Access Management (IAM) yang diperlukan untuk melakukan tugas dalam dokumen ini.
Peran yang diperlukan untuk akun layanan
Sebelum memulai, tetapkan izin IAM ke akun layanan Dataplex di project Anda:
service-PROJECT_NUMBER@gcp-sa-dataplex.
Ganti PROJECT_NUMBER
dengan project tempat Dataplex API diaktifkan.
Untuk memastikan bahwa akun layanan Dataplex memiliki izin yang diperlukan untuk menjalankan pemindaian penemuan, minta administrator Anda untuk memberikan akun layanan Dataplex peran IAM berikut:
-
Pengguna BigQuery (
roles/bigquery.user
) di project sumber data -
Storage Object Viewer (
roles/storage.objectViewer
) di bucket sumber data -
Memberikan koneksi:
BigQuery Connection Admin (
roles/bigquery.connectionAdmin
)
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 menjalankan pemindaian penemuan. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk 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
-
bigquery.connections.use
-
Administrator Anda mungkin juga dapat memberikan izin ini kepada akun layanan Dataplex dengan peran khusus atau peran bawaan lainnya.
Peran yang diperlukan untuk pengguna akhir
Untuk memastikan bahwa Anda memiliki izin yang diperlukan untuk menggunakan DataScan API, minta administrator untuk memberi Anda peran IAM berikut:
-
Akses penuh ke resource DataScan:
Administrator DataScan Dataplex (
roles/dataplex.dataScanAdmin
) di project Anda -
Akses tulis ke resource DataScan:
Dataplex DataScan Editor (
roles/dataplex.dataScanEditor
) di project Anda -
Akses baca ke resource DataScan, tidak termasuk hasilnya:
Dataplex DataScan Viewer (
roles/dataplex.dataScanViewer
) di project Anda -
Akses baca ke resource DataScan, termasuk hasilnya:
Dataplex DataScan DataViewer (
roles/dataplex.dataScanDataViewer
) di project Anda
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk menggunakan DataScan API. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk menggunakan DataScan API:
-
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 Anda, resource DataScan -
Melihat detail DataScan termasuk hasilnya:
dataplex.datascans.getData
di project Anda atau resource DataScan -
Mencantumkan DataScan:
dataplex.datascans.list
di project Anda atau resource DataScan -
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
Administrator Anda mungkin juga dapat memberi Anda 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. Untuk membuat dan menjalankan
pemeriksaan penemuan, Anda harus memiliki izin dataplex.datascans.create
.
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 konsol Google Cloud, buka halaman BigQuery.
Di Penjelajah, klik
Tambahkan.Di panel Tambahkan di bagian Sumber populer, klik Buat otomatis tabel eksternal dan BigLake dari GCS.
Di panel Create table di bagian Source, konfigurasikan detail berikut tentang data yang akan dipindai:
- Masukkan nama untuk pemindaian.
- Di kolom Scan ID, masukkan ID unik yang mengikuti konvensi penamaan resource. 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.
- Sertakan: jika hanya sebagian data yang harus 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 membuat tabel BigLake dari data yang dipindai, di kolom Connection ID, berikan ID koneksi resource Google Cloud Anda. Untuk mengetahui informasi selengkapnya, lihat Koneksi resource Google Cloud.
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
(newline). 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 data, klik Buat (untuk pemindaian terjadwal) atau Jalankan sekarang (untuk pemindaian on demand).
Pemindaian terjadwal dijalankan sesuai jadwal yang Anda tetapkan.
Pemindaian on demand dijalankan satu kali pada awalnya saat Anda membuatnya, dan Anda dapat menjalankan pemindaian kapan saja. Perlu waktu beberapa menit agar pemindaian dapat berjalan.
REST
Untuk membuat pemindaian penemuan, gunakan metode dataScans.create
.
Memantau pemindaian penemuan
Untuk memantau hasil pemindaian penemuan, Anda dapat membuat kueri log yang dibuat saat pemindaian dijalankan.
Konsol
Di Konsol Google Cloud, buka halaman Logs Explorer.
Di tampilan Logs Explorer, temukan tab Query.
Klik menu Resource.
Pilih Cloud Dataplex DataScan. Klik Terapkan.
Klik menu Log name.
Di kolom Search log names, masukkan
dataplex.googleapis.com%2Fdata_scan
. Pilih data_scan, lalu klik Terapkan.Opsional: Filter log ke ID atau lokasi pemindaian data tertentu dengan menambahkan filter berikut dalam kueri log:
resource.type="dataplex.googleapis.com/DataScan" AND resource.labels.resource_container="projects/PROJECT_ID" AND resource.labels.datascan_id="DATA_SCAN_ID"
Ganti kode berikut:
PROJECT_ID
: project ID Google Cloud AndaDATA_SCAN_ID
: ID DataScan
Klik Run query.
REST
Untuk memantau pemindaian penemuan, gunakan metode dataScans.get
.
Membuat kueri tabel BigLake yang dipublikasikan
Setelah Anda menjalankan pemindaian penemuan, tabel BigLake akan dipublikasikan dalam set data baru di BigQuery dan tersedia untuk dianalisis di BigQuery menggunakan SQL, atau di Dataproc menggunakan Apache Spark atau Dataproc atau HiveQL.
Membuat kueri menggunakan SQL
Anda dapat melihat atau membuat kueri tabel di BigQuery. Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri di BigQuery, lihat Menjalankan kueri.
Membuat kueri menggunakan 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 di BigQuery
oleh pemindaian penemuan. Kecuali jika label metadata-managed-mode disetel ke
user_managed
, pemindaian penemuan akan mengelola tabel BigLake
yang dipublikasikan. Pemindaian penemuan menangani penemuan data baru, inferensi skema, dan
evolusi skema setiap kali DataScan terjadwal atau on demand dijalankan.
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 datascan yang dijalankan pada frekuensi terjadwal.
Untuk memperbarui tabel BigLake yang dipublikasikan, ikuti langkah-langkah berikut:
Di Konsol Google Cloud, buka halaman BigQuery.
Di panel Explorer, luaskan project dan set data Anda, lalu pilih tabel.
Di panel Detail, di bagian Label, pastikan 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
.
Tabel dengan skema yang diperbarui akan tersedia untuk kueri SQL dan Spark. Saat pemindaian penemuan berikutnya berjalan, metadata tabel tetap tidak berubah.
Menghapus tabel BigLake yang dipublikasikan
Untuk menghapus tabel BigLake yang dipublikasikan, ikuti langkah-langkah berikut:
Di Konsol Google Cloud, 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 nilai yang bukan
user_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 sesuai permintaan
Untuk menjalankan pemindaian penemuan sesuai permintaan, gunakan
metode dataScans.run
di Dataplex API.
Mencantumkan pemindaian penemuan
Untuk mengambil daftar pemindaian dalam project Anda, gunakan metode dataScans.list
di Dataplex API.
Memperbarui pemindaian penemuan
Untuk mengubah jadwal pemindaian, misalnya, mengubah jadwal dari on demand menjadi berulang, Anda perlu memperbarui DataScan.
Untuk memperbarui pemindaian penemuan, gunakan
metode dataScans.patch
di Dataplex API.
Menghapus pemindaian penemuan
Untuk menghapus pemindaian penemuan, gunakan
metode dataScans.delete
di Dataplex API.