Dokumen ini menjelaskan cara mengimpor metadata dari sumber pihak ketiga ke Dataplex dengan menjalankan pipeline konektivitas terkelola di Alur Kerja.
Untuk menyiapkan pipeline konektivitas terkelola, Anda harus mem-build konektor untuk sumber data. Kemudian, jalankan pipeline di Alur Kerja. Pipeline ini mengekstrak metadata dari sumber data Anda, lalu mengimpor metadata ke Dataplex. Jika perlu, pipeline juga akan membuat grup entri Katalog Dataplex 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.
Mem-build konektor
Konektor mengekstrak metadata dari sumber data Anda dan membuat file impor metadata yang dapat diimpor oleh Dataplex. 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 resource Google Cloud
-
Enable the Workflows, Dataproc, Cloud Storage, Dataplex, 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.
Konfigurasikan jaringan Virtual Private Cloud (VPC) Anda untuk menjalankan workload Dataproc Serverless untuk Spark.
Buat bucket Cloud Storage untuk menyimpan file impor metadata.
Buat resource Katalog Dataplex 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 mewakili identitas alur kerja dan menentukan izin yang dimiliki alur kerja dan resource Google Cloud yang dapat diaksesnya. 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 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
- Dataplex Catalog Editor
- 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 Alur Kerja di akun layanan yang menjalankan tugas batch Dataproc Serverless
- Workflows Invoker - jika Anda ingin menjadwalkan pipeline
Simpan perubahan Anda.
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
.
-
Berikan peran berikut ke akun layanan 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 secret yang menyimpan kredensial untuk sumber data Anda. Format ini 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
pada akun layanan yang menjalankan Alur Kerja di akun layanan yang menjalankan tugas batch Dataproc Serverless. Anda harus memberikan peran ini meskipun menggunakan akun layanan yang sama untuk Alur Kerja 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 konfigurasikan di bagian Peran yang diperlukan dalam dokumen ini.
Encryption: pilih Google-managed encryption key.
Menentukan 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 Cloud target tempat metadata akan diimpor. -
LOCATION_ID
: lokasi Google Cloud target tempat tugas impor metadata dan Dataproc Serverless akan berjalan, dan metadata akan diimpor. -
ENTRY_GROUP_ID
: ID grup entri tempat metadata akan diimpor. 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, 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 konfigurasikan 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 impor, dalam formatprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID
.LOCATION_ID
harus berupa lokasi Google Cloud yang sama dengan lokasi tempat Anda mengimpor metadata, atauglobal
. -
ASPECT_TYPES
: daftar jenis aspek yang termasuk dalam cakupan untuk impor, dalam formatprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
.LOCATION_ID
harus berupa lokasi Google Cloud yang sama dengan lokasi 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, hapus argumen subjaringan. -
Opsional: Untuk argumen
SUBNETWORK_URI
, berikan URI subjaringan yang terhubung ke sumber data. Jika Anda memberikan subnet, hapus argumen jaringan.
Bergantung pada jumlah metadata yang Anda impor, pipeline mungkin memerlukan waktu beberapa menit atau lebih lama untuk dijalankan. Untuk informasi selengkapnya tentang cara melihat progres, lihat Mengakses hasil eksekusi alur kerja.
Setelah pipeline selesai berjalan, Anda dapat menelusuri metadata yang diimpor di Katalog Dataplex.
-
Opsional: Jika Anda ingin menjalankan pipeline sesuai jadwal, buat jadwal menggunakan Cloud Scheduler. Berikan informasi berikut:
- Frequency: ekspresi unix-cron yang menentukan jadwal untuk menjalankan pipeline.
- Argumen alur kerja: argumen runtime untuk konektor, seperti yang dijelaskan pada langkah sebelumnya.
- Service account: akun layanan. Akun layanan mengelola penjadwal.
gcloud
Simpan definisi beban kerja 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 Cloud target tempat metadata akan diimpor. -
LOCATION_ID
: lokasi Google Cloud target tempat tugas impor metadata dan Dataproc Serverless akan berjalan, dan metadata akan diimpor. -
SERVICE_ACCOUNT_ID
: akun layanan yang Anda konfigurasikan 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 tempat metadata akan diimpor. 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, 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 termasuk dalam cakupan impor, dalam formatprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID
.LOCATION_ID
harus berupa lokasi Google Cloud yang sama dengan lokasi tempat Anda mengimpor metadata, atauglobal
. -
ASPECT_TYPES
: daftar jenis aspek yang termasuk dalam cakupan untuk impor, dalam formatprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
.LOCATION_ID
harus berupa lokasi Google Cloud yang sama dengan lokasi 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, hapus argumen subjaringan. -
Opsional: Untuk argumen
SUBNETWORK_URI
, berikan URI subjaringan yang terhubung ke sumber data. Jika Anda memberikan subnet, hapus 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 Katalog Dataplex.
Terraform
Clone repositori
cloud-dataplex
.Repositori ini menyertakan 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 Cloud target tempat metadata akan diimpor. -
LOCATION_ID
: lokasi Google Cloud target tempat tugas impor metadata dan Dataproc Serverless akan berjalan, dan metadata akan diimpor. -
SERVICE_ACCOUNT_ID
: akun layanan yang Anda konfigurasikan 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 tempat metadata akan diimpor. 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, 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 termasuk dalam cakupan impor, dalam formatprojects/PROJECT_ID/locations/LOCATION_ID/entryTypes/ENTRY_TYPE_ID
.LOCATION_ID
harus berupa lokasi Google Cloud yang sama dengan lokasi tempat Anda mengimpor metadata, atauglobal
. -
ASPECT_TYPES
: daftar jenis aspek yang termasuk dalam cakupan untuk impor, dalam formatprojects/PROJECT_ID/locations/LOCATION_ID/aspectTypes/ASPECT_TYPE_ID
.LOCATION_ID
harus berupa lokasi Google Cloud yang sama dengan lokasi 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, hapus argumen subjaringan. -
Opsional: Untuk argumen
SUBNETWORK_URI
, berikan URI subjaringan yang terhubung ke sumber data. Jika Anda memberikan subnet, hapus 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 dalam project yang ditentukan. Alur kerja 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 Katalog Dataplex.
Lihat log tugas
Gunakan Cloud Logging untuk melihat log untuk pipeline konektivitas terkelola. Payload log menyertakan link ke log untuk tugas batch Dataproc Serverless dan tugas impor metadata, sesuai kebutuhan. Untuk informasi selengkapnya, lihat Melihat log alur kerja.
Pemecahan masalah
Gunakan saran pemecahan masalah berikut:
- Konfigurasikan level log tugas impor untuk tugas metadata agar menggunakan logging tingkat debug, bukan 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 for Spark dan Membuat kueri log tugas metadata.
- Jika entri tidak dapat diimpor menggunakan pipeline dan pesan error tidak memberikan informasi yang memadai, coba buat entri kustom dengan detail yang sama, dalam grup entri pengujian. Untuk mengetahui informasi selengkapnya, lihat Membuat entri kustom.