Anda dapat menggunakan Data Catalog API untuk membuat dan menelusuri entri set file Cloud Storage (disebut sebagai set file dalam dokumen ini).
Kumpulan File
Set data Cloud Storage adalah entri dalam grup entri yang dibuat pengguna. Untuk informasi selengkapnya, lihat Entri dan grup entri.
Ini ditentukan oleh satu atau beberapa pola file yang menentukan kumpulan satu atau beberapa file Cloud Storage.
- Pola file harus diawali dengan
gs://bucket_name/
. - Nama bucket harus mengikuti persyaratan nama bucket Cloud Storage.
- Karakter pengganti diizinkan di bagian folder dan file dari pola file, tetapi
karakter pengganti tidak diizinkan dalam nama bucket. Untuk mengetahui contohnya, lihat:
- Nama Karakter Pengganti
- Dokumentasi referensi API GcsFilesetSpec.filePatterns
- Set file harus memiliki satu, dan tidak boleh lebih dari 5, pola set file.
Anda dapat membuat kueri set file Katalog Data dengan Dataflow SQL, tetapi hanya jika set file tersebut memiliki skema yang ditentukan dan hanya berisi file CSV tanpa baris header.
Membuat grup entri dan set file
Kumpulan file harus ditempatkan dalam grup entri buatan pengguna. Jika Anda belum membuat grup entri, buat grup entri terlebih dahulu, lalu buat fileset dalam grup entri. Anda dapat menetapkan kebijakan IAM di grup entri untuk menentukan siapa yang memiliki akses ke kumpulan file dan entri lainnya dalam grup entri.
Konsol
Konsol
Buka halaman Dataplex > Entry groups.
Klik Create entry group.
Isi formulir Create Entry Group, lalu klik CREATE.
Halaman Detail grup entri akan terbuka. Dengan tab ENTRIES yang dipilih, klik CREATE.
Isi formulir Create Fileset.
- Untuk melampirkan skema, klik Tentukan Skema untuk membuka formulir Skema. Klik + TAMBAHKAN KOLOM untuk menambahkan kolom satu per satu atau alihkan Edit sebagai teks di kanan atas formulir untuk menentukan kolom dalam format JSON.
- Klik Simpan untuk menyimpan skema.
Klik Create untuk membuat set file.
gcloud
gcloud
1. Membuat grup entri
Gunakan perintah gcloud data-catalog entry-groups create untuk membuat grup entri dengan skema dan deskripsi yang terlampir.
Contoh:
gcloud data-catalog entry-groups create my_entrygroup \ --location=us-central1
2. Membuat set file dalam grup entri
Gunakan perintah gcloud data-catalog entries create untuk membuat set file dalam grup entri. Contoh perintah Google Cloud CLI ini, di bawah, membuat entri set file yang menyertakan skema data set file.
gcloud data-catalog entries create my_fileset_entry \ --location=us-central1 \ --entry-group=my_entrygroup \ --type=FILESET \ --gcs-file-patterns=gs://my-bucket/*.csv \ --schema-from-file=path_to_schema_file \ --description="Fileset description ..."
Catatan tanda:
--gcs-file-patterns
: Lihat Persyaratan pola file.--schema-from-file
: Contoh berikut menunjukkan format JSON file teks skema yang diterima oleh tanda--schema-from-file
.[ { "column": "first_name", "description": "First name", "mode": "REQUIRED", "type": "STRING" }, { "column": "last_name", "description": "Last name", "mode": "REQUIRED", "type": "STRING" }, { "column": "address", "description": "Address", "mode": "REPEATED", "type": "STRING" } ]
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai Data Catalog menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Katalog Data.
Untuk melakukan autentikasi ke Data Catalog, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di panduan memulai Data Catalog menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Katalog Data.
Untuk melakukan autentikasi ke Data Catalog, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Data Catalog menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Katalog Data.
Untuk melakukan autentikasi ke Data Catalog, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
REST dan Command line
REST
Jika Anda tidak memiliki akses ke library Klien Cloud untuk bahasa Anda atau ingin menguji API menggunakan permintaan REST, lihat contoh berikut dan lihat dokumentasi entryGroups.create dan entryGroups.entries.create Data Catalog REST API.
- Membuat grup entri
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project-id: ID Project Google Cloud Anda
- entryGroupId: ID harus diawali dengan huruf atau garis bawah, hanya berisi huruf, angka, dan garis bawah dalam bahasa Inggris, dan maksimal 64 karakter.
- displayName: Nama tekstual untuk grup entri.
Metode HTTP dan URL:
POST https://datacatalog.googleapis.com/v1/projects/project-id/locations/region/entryGroups?entryGroupId=entryGroupId
Meminta isi JSON:
{ "displayName": "Entry Group display name" }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/my_projectid/locations/us-central1/entryGroups/my_entry_group", "displayName": "Entry Group display name", "dataCatalogTimestamps": { "createTime": "2019-10-19T16:35:50.135Z", "updateTime": "2019-10-19T16:35:50.135Z" } }
- Membuat set file dalam grup entri
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- project_id: ID Project Google Cloud Anda
- entryGroupId: ID entryGroup yang ada. Fileset akan dibuat di sntryGroup ini.
- entryId: EntryId set file baru. ID harus diawali dengan huruf atau garis bawah, hanya berisi huruf, angka, dan garis bawah dalam bahasa Inggris, dan maksimal 64 karakter.
- description: Deskripsi set file.
- displayName: Nama tekstual untuk entri set file.
- filePatterns: Harus diawali dengan "gs://bucket_name/". Lihat Persyaratan pola file.
- schema: Skema set file.
Contoh skema JSON:
{ ... "schema": { "columns": [ { "column": "first_name", "description": "First name", "mode": "REQUIRED", "type": "STRING" }, { "column": "last_name", "description": "Last name", "mode": "REQUIRED", "type": "STRING" }, { "column": "address", "description": "Address", "mode": "REPEATED", "subcolumns": [ { "column": "city", "description": "City", "mode": "NULLABLE", "type": "STRING" }, { "column": "state", "description": "State", "mode": "NULLABLE", "type": "STRING" } ], "type": "RECORD" } ] } ... }
Metode HTTP dan URL:
POST https://datacatalog.googleapis.com/v1/projects/project_id/locations/region/entryGroups/entryGroupId/entries?entryId=entryId
Meminta isi JSON:
{ "description": "Fileset description.", "displayName": "Display name", "gcsFilesetSpec": { "filePatterns": [ "gs://bucket_name/file_pattern" ] }, "type": "FILESET", "schema": { schema } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/my_project_id/locations/us-central1/entryGroups/my_entryGroup_id/entries/my_entry_id", "type": "FILESET", "displayName": "My Fileset", "description": "My Fileset description.", "schema": { "columns": [ { "type": "STRING", "description": "First name", "mode": "REQUIRED", "column": "first_name" }, { "type": "STRING", "description": "Last name", "mode": "REQUIRED", "column": "last_name" }, { "type": "RECORD", "description": "Address", "mode": "REPEATED", "column": "address", "subcolumns": [ { "type": "STRING", "description": "City", "mode": "NULLABLE", "column": "city" }, { "type": "STRING", "description": "State", "mode": "NULLABLE", "column": "state" } ] } ] }, "gcsFilesetSpec": { "filePatterns": [ "gs://my_bucket_name/chicago_taxi_trips/csv/shard-*.csv" ] }, "sourceSystemTimestamps": { "createTime": "2019-10-23T23:11:26.326Z", "updateTime": "2019-10-23T23:11:26.326Z" }, "linkedResource": "//datacatalog.googleapis.com/projects/my_project_id/locations/us-central1/entryGroups/my_entryGroup_id/entries/my_entry_id" }
Peran, izin, dan kebijakan IAM
Data Catalog menentukan peran entri dan grup entri untuk memfasilitasi pengelolaan izin fileset dan resource Data Catalog lainnya.
Peran entri | Deskripsi |
---|---|
dataCatalog.entryOwner |
Pemilik entri atau grup entri tertentu.
|
dataCatalog.entryViewer |
Dapat melihat detail entri dan entryGroup.
|
Peran grup entri | Deskripsi |
---|---|
dataCatalog.entryGroupOwner |
Pemilik entryGroup tertentu.
|
dataCatalog.entryGroupCreator |
Dapat membuat entryGroups dalam project. Pembuat entryGroup akan otomatis diberi peran dataCatalog.entryGroupOwner .
|
Menetapkan kebijakan IAM
Pengguna dengan izin datacatalog.<resource>.setIamPolicy
dapat menetapkan kebijakan IAM pada grup entri Data Catalog
dan resource Data Catalog lainnya (lihat
Peran Data Catalog).
Konsol
Buka halaman Detail grup entri di UI Data Catalog, lalu gunakan panel IAM yang terletak di sisi kanan untuk memberikan atau membatalkan izin.
gcloud
Tetapkan kebijakan IAM grup entri dengan Google Cloud CLI data-catalog entry-groups set-iam-policy:
gcloud data-catalog entry-groups set-iam-policy my_entrygroup \ --location=us-central1 \ policy file
Mendapatkan kebijakan IAM grup entri dengan Google Cloud CLI data-catalog entry-groups get-iam-policy
gcloud data-catalog entry-groups get-iam-policy my_entrygroup \ --location=us-central1
Memberikan peran grup entri
Contoh 1
Perusahaan dengan konteks bisnis yang berbeda untuk set file-nya
akan membuat grup entri order-files
dan user-files
terpisah:
Perusahaan memberikan peran pelihat grup entri kepada pengguna untuk order-files
, yang berarti mereka hanya dapat menelusuri entri yang terdapat dalam grup entri tersebut. Hasil penelusurannya tidak menampilkan entri dalam grup entri user-files
.
Contoh 2
Perusahaan memberikan peran pelihat grup entri kepada pengguna hanya dalam
project project_entry_group
. Pengguna hanya dapat melihat
entri dalam project tersebut.
Menelusuri set file
Pengguna dapat membatasi cakupan penelusuran di Data Catalog menggunakan
facet type
. type=entry_group
membatasi kueri penelusuran ke grup entri, sedangkan type=fileset
hanya menelusuri set file.
Faset type
dapat digunakan bersama dengan faset lain, seperti projectid
.
gcloud
Menelusuri grup entri dalam project:
gcloud data-catalog search \ --include-project-ids=my-project "projectid=my-project type=entry_group"
Telusuri semua grup entri yang dapat Anda akses:
gcloud data-catalog search \ --include-project-ids=my-project "type=entry_group"
Telusuri set file dalam project:
gcloud data-catalog search \ --include-project-ids=my-project "type=entry.fileset"
Menelusuri set file dalam project (sintaksis sederhana):
gcloud data-catalog search \ --include-project-ids=my-project "type=fileset"