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:

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:

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:

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

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di Penjelajah, klik Tambahkan.

  3. Di panel Tambahkan di bagian Sumber populer, klik Buat otomatis tabel eksternal dan BigLake dari GCS.

  4. Di panel Create table di bagian Source, konfigurasikan detail berikut tentang data yang akan dipindai:

    1. Masukkan nama untuk pemindaian.
    2. Di kolom Scan ID, masukkan ID unik yang mengikuti konvensi penamaan resource. Jika Anda tidak memberikan ID, pemindaian penemuan akan membuat ID pemindaian.
    3. Opsional: Berikan deskripsi pemindaian.
    4. Untuk menentukan bucket Cloud Storage yang berisi file yang akan dipindai, di kolom Bucket, cari dan pilih bucket.
    5. 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.

    6. 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.

  5. 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.

  6. Opsional: Di bagian Spesifikasi JSON atau CSV, tentukan cara pemindaian memproses file JSON dan CSV. Klik Spesifikasi JSON atau CSV.

    1. 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.
    2. 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 maupun 1. Jika Anda menentukan nilai 0, pemindaian penemuan akan menyimpulkan judul dan mengekstrak nama kolom dari file. Defaultnya adalah 0.
      • 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, atau ISO-8859-1. Jika Anda tidak menentukan nilai, UTF-8 akan digunakan sebagai default.
  7. 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

  1. Di Konsol Google Cloud, buka halaman Logs Explorer.

    Buka Logs Explorer

  2. Di tampilan Logs Explorer, temukan tab Query.

  3. Klik menu Resource.

  4. Pilih Cloud Dataplex DataScan. Klik Terapkan.

  5. Klik menu Log name.

  6. Di kolom Search log names, masukkan dataplex.googleapis.com%2Fdata_scan. Pilih data_scan, lalu klik Terapkan.

  7. 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 Anda
    • DATA_SCAN_ID: ID DataScan
  8. 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:

  1. 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 pengguna
    • PROJECT_ID: ID project dengan tabel BigLake
    • TABLE_NAME: Nama tabel BigLake
    • TABLE_ID: ID tabel BigLake
  2. Kirim tugas batch.

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:

  1. Di Konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Memperbarui satu atau beberapa properti tabel.

  3. Di panel Explorer, luaskan project dan set data Anda, lalu pilih tabel.

  4. Di panel Detail, di bagian Label, pastikan metadata-managed-mode disetel ke user_managed. Jika ditetapkan ke nilai yang berbeda, ikuti langkah-langkah berikut:

    1. Klik Edit detail.

    2. 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:

  1. Hapus file data untuk tabel di bucket Cloud Storage.

  2. Di Konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  3. Di panel Explorer, luaskan project dan set data Anda, lalu pilih tabel.

  4. Di panel Details, di bagian Labels, pastikan label metadata-managed-mode tidak disetel ke user_managed. Jika ditetapkan ke user_managed, ikuti langkah-langkah berikut:

    1. Klik Edit detail .

    2. Di samping kunci metadata-managed-mode, di kolom value, masukkan nilai yang bukan user_managed.

  5. 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.