Anda dapat menggunakan Data Catalog API untuk membuat dan menelusuri entri kumpulan file Cloud Storage (disebut "filesets" di bagian lain dokumen ini).
Kumpulan File
Kumpulan file Cloud Storage adalah entri dalam grup entri yang dibuat pengguna. Untuk informasi selengkapnya, lihat Entri dan grup entri.
Batasan ditentukan oleh satu atau beberapa pola file yang menentukan kumpulan dari 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 dalam bagian folder dan file dari pola file, tetapi karakter pengganti tidak diizinkan dalam nama bucket. Untuk contoh, lihat:
- Nama Karakter Pengganti
- Dokumentasi referensi API GcsFilesetSpec.filePatterns
- Kumpulan file harus memiliki satu, dan tidak boleh memiliki lebih dari 500, pola kumpulan file.
Anda dapat membuat kueri kumpulan file Data Catalog dengan Dataflow SQL, tetapi hanya jika kumpulan file tersebut memiliki skema yang ditentukan dan hanya berisi file CSV tanpa baris header.
Membuat grup entri dan kumpulan file
Kumpulan file harus ditempatkan dalam grup entri yang dibuat pengguna. Jika Anda belum membuat grup entri, buat grup entri terlebih dahulu, lalu buat set file dalam grup entri. Anda dapat menetapkan kebijakan IAM pada grup entri untuk menentukan siapa yang memiliki akses ke kumpulan file dan entri lainnya dalam grup entri.
Konsol
Konsol
Buka halaman Dataplex > Grup entri.
Klik Buat grup entri.
Isi formulir Create Entry Group, lalu klik CREATE.
Halaman Detail grup entri akan terbuka. Setelah memilih tab ENTRIES, klik CREATE.
Isi formulir Create Fileset.
- Untuk melampirkan skema, klik Define Schema untuk membuka formulir Schema. Klik + TAMBAHKAN KOLOM untuk menambahkan kolom satu per satu atau aktifkan Edit sebagai teks di kanan atas formulir untuk menentukan kolom dalam format JSON.
- Klik Save untuk menyimpan skema.
Klik Create untuk membuat kumpulan file.
gcloud
gcloud
1. Membuat grup entri
Gunakan perintah gcloud data-catalog entry-groups create untuk membuat grup entri dengan skema dan deskripsi terlampir.
Contoh:
gcloud data-catalog entry-groups create my_entrygroup \ --location=us-central1
2. Membuat kumpulan file dalam grup entri
Gunakan perintah
gcloud data-catalog entries create
untuk membuat kumpulan file dalam grup entri. Contoh perintah gcloud
di bawah ini, di bawah, akan 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 ..."
Tandai catatan:
--gcs-file-patterns
: Lihat Persyaratan pola file.--schema-from-file
: Contoh berikut menunjukkan format JSON dari file teks skema yang diterima oleh flag--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 Katalog Data menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Data Catalog Java.
Untuk mengautentikasi ke Data Catalog, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di panduan memulai Katalog Data menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Data Catalog Node.js.
Untuk mengautentikasi ke Data Catalog, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di panduan memulai Katalog Data menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Data Catalog Python.
Untuk mengautentikasi ke Data Catalog, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
BARIS REST & CMD
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 REST API Data Catalog.
1. 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 berisi 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" } }
2. Membuat kumpulan 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. Kumpulan file akan dibuat di sntryGroup ini.
- entryId: EntryId kumpulan file baru. ID harus diawali dengan huruf atau garis bawah, hanya berisi huruf, angka, dan garis bawah dalam bahasa Inggris, dan berisi maksimal 64 karakter.
- description: Deskripsi kumpulan file.
- displayName: Nama tekstual untuk entri kumpulan file.
- filePatterns: Harus diawali dengan "gs://bucket_name/". Lihat Persyaratan pola file.
- schema: Skema kumpulan 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 entryGroup untuk memfasilitasi pengelolaan izin kumpulan file dan resource Data Catalog lainnya.
Peran entri | Deskripsi |
---|---|
dataCatalog.entryOwner |
Pemilik entri atau grup entri tertentu.
|
dataCatalog.entryViewer |
Dapat melihat detail entri & entryGroup.
|
peran entryGroup | Deskripsi |
---|---|
dataCatalog.entryGroupOwner |
Pemilik entryGroup tertentu.
|
dataCatalog.entryGroupCreator |
Dapat membuat entryGroups dalam project. Pembuat entryGroup secara 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).
gcloud
Tetapkan kebijakan IAM grup entri dengan gcloud 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 gcloud data-catalog entry-groups get-iam-policy
gcloud data-catalog entry-groups get-iam-policy my_entrygroup \ --location=us-central1
Konsol
Buka halaman Detail grup entri di UI Data Catalog, lalu gunakan panel IAM yang terletak di sisi kanan untuk memberikan atau mencabut izin.
Memberikan peran Grup Entri
Contoh 1:
Perusahaan dengan konteks bisnis yang berbeda untuk kumpulan filenya
membuat grup entri order-files
dan user-files
yang terpisah:
Perusahaan memberi pengguna peran EntryGroup Viewer untuk order-files
, yang berarti mereka
hanya dapat menelusuri entri yang ada dalam grup entri tersebut. Hasil penelusurannya tidak menampilkan entri dalam grup entri user-files
.
Contoh 2:
Perusahaan memberikan peran EntryGroup Viewer kepada pengguna hanya dalam
project project_entry_group
. Pengguna hanya dapat melihat
entri dalam project tersebut.
Menelusuri kumpulan file
Pengguna dapat membatasi cakupan penelusuran di Data Catalog menggunakan faset type
. type=entry_group
membatasi kueri penelusuran untuk
grup entri, sedangkan type=fileset
hanya menelusuri kumpulan file.
Faset type
dapat digunakan bersama dengan faset lain, seperti projectid
.
gcloud
Menelusuri grup entri dalam sebuah 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"
Menelusuri kumpulan file dalam sebuah project:
gcloud data-catalog search \ --include-project-ids=my-project "type=entry.fileset"
Telusuri kumpulan file dalam project - sintaksis yang disederhanakan:
gcloud data-catalog search \ --include-project-ids=my-project "type=fileset"