Dokumen ini menjelaskan cara mengimpor metadata dari sumber pihak ketiga ke dalam Katalog Universal Dataplex dengan menjalankan pipeline konektivitas terkelola di Workflows.
Untuk menyiapkan pipeline konektivitas terkelola, Anda membuat konektor untuk sumber data. Kemudian, Anda menjalankan pipeline di Workflows. Pipeline mengekstrak metadata dari sumber data Anda, lalu mengimpor metadata ke Katalog Universal Dataplex. Jika perlu, pipeline juga membuat grup entri Dataplex Universal Catalog di project Google Cloud Anda.
Untuk mengetahui informasi selengkapnya tentang konektivitas terkelola, lihat Ringkasan konektivitas terkelola.
Sebelum memulai
Sebelum mengimpor metadata, selesaikan tugas-tugas di bagian ini.
Membangun konektor
Konektor mengekstrak metadata dari sumber data Anda dan membuat file impor metadata yang dapat diimpor oleh Dataplex Universal Catalog. Konektor adalah image Artifact Registry yang dapat dijalankan di Dataproc Serverless.
Buat konektor kustom yang mengekstrak metadata dari sumber pihak ketiga Anda.
Untuk contoh konektor yang dapat Anda gunakan sebagai template referensi untuk membuat konektor Anda sendiri, lihat Mengembangkan konektor kustom untuk impor metadata.
Mengonfigurasi Google Cloud resource
-
Enable the Workflows, Dataproc, Cloud Storage, Dataplex Universal Catalog, Secret Manager, Artifact Registry, and Cloud Scheduler APIs.
Jika tidak berencana menjalankan pipeline sesuai jadwal, Anda tidak perlu mengaktifkan Cloud Scheduler API.
Buat secret di Secret Manager untuk menyimpan kredensial sumber data pihak ketiga Anda.
Konfigurasi jaringan Virtual Private Cloud (VPC) untuk menjalankan workload Dataproc Serverless for Spark.
Buat bucket Cloud Storage untuk menyimpan file impor metadata.
Buat resource Dataplex Universal Catalog berikut:
Buat jenis aspek kustom untuk entri yang ingin Anda impor.
Buat jenis entri kustom untuk entri yang ingin Anda impor.
Peran yang diperlukan
Akun layanan merepresentasikan identitas alur kerja dan menentukan izin yang dimiliki alur kerja dan resource yang dapat diaksesnya. Google Cloud Anda memerlukan akun layanan untuk Workflows (untuk menjalankan pipeline) dan untuk Dataproc Serverless (untuk menjalankan konektor).
Anda dapat menggunakan akun layanan default Compute Engine (PROJECT_NUMBER-compute@developer.gserviceaccount.com
), atau membuat akun layanan Anda sendiri (atau beberapa akun) untuk menjalankan pipeline konektivitas terkelola.
Konsol
Di konsol Google Cloud , buka halaman IAM.
Pilih project tempat Anda ingin mengimpor metadata.
Klik
Grant Access, lalu masukkan alamat email akun layanan.Tetapkan peran berikut ke akun layanan:
- Logs Writer
- Pemilik Grup Entri Dataplex
- Pemilik Tugas Metadata Dataplex
- Editor Katalog Dataplex
- Editor Dataproc
- Dataproc Worker
- Secret Manager Secret Accessor - pada secret yang menyimpan kredensial untuk sumber data Anda
- Storage Object User - di bucket Cloud Storage
- Artifact Registry Reader - di repositori Artifact Registry yang berisi image konektor
- Service Account User - jika Anda menggunakan akun layanan yang berbeda, berikan peran ini kepada akun layanan yang menjalankan Workflows di akun layanan yang menjalankan tugas batch Dataproc Serverless
- Workflows Invoker - jika Anda ingin menjadwalkan pipeline
Simpan perubahan.
gcloud
Memberikan peran ke akun layanan. Jalankan perintah berikut:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/logging.logWriter gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.entryGroupOwner gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.metadataJobOwner gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataplex.catalogEditor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataproc.editor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/dataproc.worker
Ganti kode berikut:
-
PROJECT_ID
: nama project Google Cloud target tempat metadata akan diimpor. SERVICE_ACCOUNT_ID
: akun layanan, sepertimy-service-account@my-project.iam.gserviceaccount.com
.
-
Beri akun layanan peran berikut di tingkat resource:
gcloud secrets add-iam-policy-binding SECRET_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/secretmanager.secretaccessor gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role=roles/storage.objectUser \ --condition=resource.name.startsWith('projects/_/buckets/BUCKET_ID') gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=REPOSITORY_LOCATION \ --member=SERVICE_ACCOUNT_ID} \ --role=roles/artifactregistry.reader
Ganti kode berikut:
SECRET_ID
: ID rahasia yang menyimpan kredensial untuk sumber data Anda. Menggunakan formatprojects/PROJECT_ID/secrets/SECRET_ID
.BUCKET_ID
: nama bucket Cloud Storage.REPOSITORY
: repositori Artifact Registry yang berisi image konektor.REPOSITORY_LOCATION
: lokasi Google Cloud tempat repositori dihosting.
Berikan peran
roles/iam.serviceAccountUser
kepada akun layanan yang menjalankan Workflows di akun layanan yang menjalankan tugas batch Dataproc Serverless. Anda harus memberikan peran ini meskipun Anda menggunakan akun layanan yang sama untuk Workflows dan Dataproc Serverless.gcloud iam service-accounts add-iam-policy-binding \ serviceAccount:SERVICE_ACCOUNT_ID \ --member='SERVICE_ACCOUNT_ID' \ --role='roles/iam.serviceAccountUser'
Jika Anda menggunakan akun layanan yang berbeda, nilai untuk tanda
--member
adalah akun layanan yang menjalankan tugas batch Dataproc Serverless.Jika Anda ingin menjadwalkan pipeline, berikan peran berikut kepada akun layanan:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="SERVICE_ACCOUNT_ID" \ --role=roles/workflows.invoker
Mengimpor metadata
Untuk mengimpor metadata, buat lalu jalankan alur kerja yang menjalankan pipeline konektivitas terkelola. Secara opsional, Anda juga dapat membuat jadwal untuk menjalankan pipeline.
Konsol
Buat alur kerja. Berikan informasi berikut:
- Akun layanan: akun layanan yang Anda konfigurasi di bagian Peran yang diperlukan dalam dokumen ini.
Enkripsi: pilih Google-managed encryption key.
Tentukan alur kerja: berikan file definisi berikut:
Untuk menjalankan pipeline sesuai permintaan, jalankan alur kerja.
Berikan argumen runtime berikut:
Ganti kode berikut:
-
PROJECT_ID
: nama project Google Cloudtarget tempat metadata akan diimpor. -
LOCATION_ID
: target Google Cloud lokasi tempat tugas impor metadata dan Dataproc Serverless akan berjalan, dan metadata akan diimpor. -
ENTRY_GROUP_ID
: ID grup entri untuk mengimpor metadata. ID grup entri dapat berisi huruf kecil, angka, dan tanda hubung.Nama resource lengkap grup entri ini adalah
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID
. -
CREATE_ENTRY_GROUP_BOOLEAN
: jika Anda ingin pipeline membuat grup entri jika belum ada di project Anda, tetapkan nilai ini ketrue
. -
BUCKET_ID
: nama bucket Cloud Storage untuk menyimpan file impor metadata yang dihasilkan oleh konektor. Setiap eksekusi alur kerja akan membuat folder baru. -
SERVICE_ACCOUNT_ID
: akun layanan yang Anda konfigurasi di bagian Peran yang diperlukan dalam dokumen ini. Akun layanan menjalankan konektor di Dataproc Serverless. -
ADDITIONAL_CONNECTOR_ARGUMENTS
: daftar argumen tambahan yang akan diteruskan ke konektor. Untuk contohnya, lihat Mengembangkan konektor kustom untuk impor metadata. Sertakan setiap argumen dalam tanda kutip ganda, dan pisahkan argumen dengan koma. -
CONTAINER_IMAGE
: image container kustom konektor yang dihosting di Artifact Registry. -
ENTRY_TYPES
: daftar jenis entri yang termasuk dalam cakupan untuk diimpor, dalam formatprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID
.LOCATION_ID
harus berupaGoogle Cloud lokasi yang sama dengan tempat Anda mengimpor metadata, atauglobal
. -
ASPECT_TYPES
: daftar jenis aspek yang tercakup untuk diimpor, dalam formatprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
.LOCATION_ID
harus berupaGoogle Cloud lokasi yang sama dengan tempat Anda mengimpor metadata, atauglobal
. -
Opsional: untuk argumen
NETWORK_TAGS
, berikan daftar tag jaringan. -
Opsional: Untuk argumen
NETWORK_URI
, berikan URI jaringan VPC yang terhubung ke sumber data. Jika Anda menyediakan jaringan, hilangkan argumen subnetwork. -
Opsional: Untuk argumen
SUBNETWORK_URI
, berikan URI subnetwork yang terhubung ke sumber data. Jika Anda menyediakan subnet, hilangkan argumen jaringan.
Bergantung pada jumlah metadata yang Anda impor, pipeline mungkin memerlukan waktu beberapa menit atau lebih lama untuk dijalankan. Untuk mengetahui informasi selengkapnya tentang cara melihat progres, lihat Mengakses hasil eksekusi alur kerja.
Setelah pipeline selesai berjalan, Anda dapat menelusuri metadata yang diimpor di Dataplex Universal Catalog.
-
Opsional: Jika Anda ingin menjalankan pipeline sesuai jadwal, buat jadwal menggunakan Cloud Scheduler. Berikan informasi berikut:
- Frekuensi: ekspresi unix-cron yang menentukan jadwal untuk menjalankan pipeline.
- Argumen alur kerja: argumen runtime untuk konektor, seperti yang dijelaskan di langkah sebelumnya.
- Service account: akun layanan. Akun layanan mengelola penjadwal.
gcloud
Simpan definisi workload berikut sebagai file YAML:
Tentukan variabel Bash, buat alur kerja, dan opsional buat jadwal untuk menjalankan pipeline:
Ganti kode berikut:
-
PROJECT_ID
: nama project Google Cloudtarget tempat metadata akan diimpor. -
LOCATION_ID
: target Google Cloud lokasi tempat tugas impor metadata dan Dataproc Serverless akan berjalan, dan metadata akan diimpor. -
SERVICE_ACCOUNT_ID
: akun layanan yang Anda konfigurasi di bagian Peran yang diperlukan dalam dokumen ini. WORKFLOW_DEFINITION_FILE
: jalur ke file YAML definisi alur kerja.WORKFLOW_NAME
: nama alur kerja.WORKFLOW_ARGUMENTS
: argumen runtime yang akan diteruskan ke konektor. Argumennya dalam format JSON:Untuk Cloud Scheduler, tanda kutip ganda di dalam string yang dikutip di-escape menggunakan garis miring terbalik (\). Misalnya:
--message-body="{\"argument\": \"{\\\"key\\\": \\\"value\\\"}\"}"
.Ganti kode berikut:
-
ENTRY_GROUP_ID
: ID grup entri untuk mengimpor metadata. ID grup entri dapat berisi huruf kecil, angka, dan tanda hubung.Nama resource lengkap grup entri ini adalah
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID
. -
CREATE_ENTRY_GROUP_BOOLEAN
: jika Anda ingin pipeline membuat grup entri jika belum ada di project Anda, tetapkan nilai ini ketrue
. -
BUCKET_ID
: nama bucket Cloud Storage untuk menyimpan file impor metadata yang dihasilkan oleh konektor. Setiap eksekusi alur kerja akan membuat folder baru. -
ADDITIONAL_CONNECTOR_ARGUMENTS
: daftar argumen tambahan yang akan diteruskan ke konektor. Untuk contohnya, lihat Mengembangkan konektor kustom untuk impor metadata. -
CONTAINER_IMAGE
: image container kustom konektor yang dihosting di Artifact Registry. -
ENTRY_TYPES
: daftar jenis entri yang tercakup untuk diimpor, dalam formatprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID
.LOCATION_ID
harus berupaGoogle Cloud lokasi yang sama dengan tempat Anda mengimpor metadata, atauglobal
. -
ASPECT_TYPES
: daftar jenis aspek yang tercakup untuk diimpor, dalam formatprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
.LOCATION_ID
harus berupaGoogle Cloud lokasi yang sama dengan tempat Anda mengimpor metadata, atauglobal
. -
Opsional: untuk argumen
NETWORK_TAGS
, berikan daftar tag jaringan. -
Opsional: Untuk argumen
NETWORK_URI
, berikan URI jaringan VPC yang terhubung ke sumber data. Jika Anda menyediakan jaringan, hilangkan argumen subnetwork. -
Opsional: Untuk argumen
SUBNETWORK_URI
, berikan URI subnetwork yang terhubung ke sumber data. Jika Anda menyediakan subnet, hilangkan argumen jaringan.
-
CRON_SCHEDULE_EXPRESSION
: ekspresi cron yang menentukan jadwal untuk menjalankan pipeline. Misalnya, untuk menjalankan jadwal pada tengah malam setiap hari, gunakan ekspresi0 0 * * *
.
-
Untuk menjalankan pipeline sesuai permintaan, jalankan alur kerja:
Argumen alur kerja dalam format JSON, tetapi tidak di-escape.
Bergantung pada jumlah metadata yang Anda impor, alur kerja mungkin memerlukan waktu beberapa menit atau lebih lama untuk dijalankan. Untuk mengetahui informasi selengkapnya tentang cara melihat progres, lihat Mengakses hasil eksekusi alur kerja.
Setelah pipeline selesai berjalan, Anda dapat menelusuri metadata yang diimpor di Dataplex Universal Catalog.
Terraform
Buat clone repositori
cloud-dataplex
.Repositori ini mencakup file Terraform berikut:
main.tf
: menentukan resource Google Cloud yang akan dibuat.variables.tf
: mendeklarasikan variabel.byo-connector.tfvars
: menentukan variabel untuk pipeline konektivitas terkelola Anda.
Edit file
.tfvars
untuk mengganti placeholder dengan informasi untuk konektor Anda.Ganti kode berikut:
-
PROJECT_ID
: nama project Google Cloudtarget tempat metadata akan diimpor. -
LOCATION_ID
: target Google Cloud lokasi tempat tugas impor metadata dan Dataproc Serverless akan berjalan, dan metadata akan diimpor. -
SERVICE_ACCOUNT_ID
: akun layanan yang Anda konfigurasi di bagian Peran yang diperlukan dalam dokumen ini. -
CRON_SCHEDULE_EXPRESSION
: ekspresi cron yang menentukan jadwal untuk menjalankan pipeline. Misalnya, untuk menjalankan jadwal pada tengah malam setiap hari, gunakan ekspresi0 0 * * *
. -
ENTRY_GROUP_ID
: ID grup entri untuk mengimpor metadata. ID grup entri dapat berisi huruf kecil, angka, dan tanda hubung.Nama resource lengkap grup entri ini adalah
projects/PROJECT_ID/locations/LOCATION_ID/entryGroups/ENTRY_GROUP_ID
. -
CREATE_ENTRY_GROUP_BOOLEAN
: jika Anda ingin pipeline membuat grup entri jika belum ada di project Anda, tetapkan nilai ini ketrue
. -
BUCKET_ID
: nama bucket Cloud Storage untuk menyimpan file impor metadata yang dihasilkan oleh konektor. Setiap eksekusi alur kerja akan membuat folder baru. -
ADDITIONAL_CONNECTOR_ARGUMENTS
: daftar argumen tambahan yang akan diteruskan ke konektor. Untuk contohnya, lihat Mengembangkan konektor kustom untuk impor metadata. Sertakan setiap argumen dalam tanda kutip ganda, dan pisahkan argumen dengan koma. -
CONTAINER_IMAGE
: image container kustom konektor yang dihosting di Artifact Registry. -
ENTRY_TYPES
: daftar jenis entri yang tercakup untuk diimpor, dalam formatprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID
.LOCATION_ID
harus berupaGoogle Cloud lokasi yang sama dengan tempat Anda mengimpor metadata, atauglobal
. -
ASPECT_TYPES
: daftar jenis aspek yang tercakup untuk diimpor, dalam formatprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
.LOCATION_ID
harus berupaGoogle Cloud lokasi yang sama dengan tempat Anda mengimpor metadata, atauglobal
. -
Opsional: untuk argumen
NETWORK_TAGS
, berikan daftar tag jaringan. -
Opsional: Untuk argumen
NETWORK_URI
, berikan URI jaringan VPC yang terhubung ke sumber data. Jika Anda menyediakan jaringan, hilangkan argumen subnetwork. -
Opsional: Untuk argumen
SUBNETWORK_URI
, berikan URI subnetwork yang terhubung ke sumber data. Jika Anda menyediakan subnet, hilangkan argumen jaringan.
-
Lakukan inisialisasi Terraform:
terraform init
Validasi Terraform dengan file
.tfvars
Anda:terraform plan --var-file=CONNECTOR_VARIABLES_FILE.tfvars
Ganti
CONNECTOR_VARIABLES_FILE
dengan nama file definisi variabel Anda.Deploy Terraform dengan file
.tfvars
Anda:terraform apply --var-file=CONNECTOR_VARIABLES_FILE.tfvars
Terraform membuat alur kerja dan tugas Cloud Scheduler di project yang ditentukan. Workflows menjalankan pipeline sesuai jadwal yang Anda tentukan.
Bergantung pada jumlah metadata yang Anda impor, alur kerja mungkin memerlukan waktu beberapa menit atau lebih lama untuk dijalankan. Untuk mengetahui informasi selengkapnya tentang cara melihat progres, lihat Mengakses hasil eksekusi alur kerja.
Setelah pipeline selesai berjalan, Anda dapat menelusuri metadata yang diimpor di Dataplex Universal Catalog.
Lihat log tugas
Gunakan Cloud Logging untuk melihat log pipeline konektivitas terkelola. Payload log mencakup link ke log untuk tugas batch Dataproc Serverless dan tugas impor metadata, jika relevan. Untuk mengetahui informasi selengkapnya, lihat Melihat log alur kerja.
Pemecahan masalah
Gunakan saran pemecahan masalah berikut:
- Konfigurasi tingkat log tugas impor untuk tugas metadata agar menggunakan logging tingkat debug daripada logging tingkat info.
- Tinjau log untuk tugas batch Dataproc Serverless (untuk eksekusi konektor) dan tugas impor metadata. Untuk mengetahui informasi selengkapnya, lihat Membuat kueri log Dataproc Serverless untuk Spark dan Membuat kueri log tugas metadata.
- Jika entri tidak dapat diimpor menggunakan pipeline dan pesan error tidak memberikan informasi yang cukup, coba buat entri kustom dengan detail yang sama, dalam grup entri pengujian. Untuk mengetahui informasi selengkapnya, lihat Membuat entri kustom.
Langkah berikutnya
- Tentang pengelolaan metadata di Dataplex Universal Catalog
- Mengembangkan konektor kustom untuk impor metadata