Hilangkan silo data dan hindari beralih antar-alat dengan menggunakan konektor Knowledge Catalog (sebelumnya Dataplex Universal Catalog) untuk mengimpor metadata dari Snowflake Horizon langsung ke Google Cloud.
Konektor ini mendukung instance Snowflake Horizon yang dihosting di Google Cloud, Microsoft Azure, atau Amazon Web Services (AWS).
Tabel berikut mencantumkan metadata yang diambil oleh konektor Snowflake Horizon:
| Kategori | Metadata yang diambil |
|---|---|
| Teknis |
|
| Operasional |
|
| Bisnis |
|
| Semantik |
|
Batasan
Konektor Snowflake Horizon memiliki batasan berikut:
- Silsilah tidak didukung.
- Konektor mengimpor metadata untuk tabel Iceberg Anda, tetapi tidak otomatis menautkan metadata ini ke tabel fisik yang mendasarinya di Iceberg REST Catalog (IRC) Anda.
- Tag, hasil pembuatan profil dan kualitas data, hasil klasifikasi,
gabungan histori kueri, dan insight penggunaan yang membaca
ACCESS_HISTORY(pengguna yang sering dan tabel yang sering digabungkan) memerlukan Snowflake Enterprise Edition atau yang lebih tinggi.
Sebelum memulai
Sebelum dapat mengimpor metadata dari Snowflake Horizon, selesaikan tugas-tugas berikut:
- Berikan peran dan izin yang diperlukan.
- Aktifkan Dataplex API dan BigQuery Data Transfer Service API.
- Memenuhi prasyarat Snowflake Horizon.
- Memenuhi prasyarat jaringan.
Peran dan izin IAM
Untuk membuat dan mengelola tugas konektor Knowledge Catalog, Anda memerlukan peran Identity and Access Management (IAM) yang memberikan izin untuk Knowledge Catalog dan BigQuery Data Transfer Service.
Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi konektor Snowflake Horizon, minta administrator untuk memberi Anda peran IAM berikut:
- Untuk membuat dan mengelola grup entri:
Dataplex Catalog Admin
(
roles/dataplex.catalogAdmin), Dataplex Catalog Editor (roles/dataplex.catalogEditor), atau Dataplex Entry Group Owner (roles/dataplex.entryGroupOwner) di project. - Untuk melihat metadata Snowflake Horizon:
Dataplex Catalog Viewer
(
roles/dataplex.catalogViewer) di project. - Untuk membuat dan mengelola tugas transfer BigQuery Data Transfer Service:
BigQuery Admin
(
roles/bigquery.admin) di project. - Untuk melihat log di Cloud Logging:
Logs Viewer
(
roles/logging.viewer) di project.
Anda juga harus memberikan kedua peran berikut kepada agen layanan BigQuery Data Transfer Service (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com):
- Dataplex Entry Group Importer
(
roles/dataplex.entryGroupImporter), di grup entri tujuan atau di project yang memuatnya. Peran ini memungkinkan agen layanan mengimpor metadata ke dalam grup entri (dataplex.entryGroups.import). Dataplex Entry and EntryLink Owner (
roles/dataplex.entryOwner), di project yang berisi grup entri tujuan. Peran ini memungkinkan agen layanan mengimpor metadata penggunaan, bisnis, dan kualitas data serta link entri. Peran ini mencakup izin berikut:dataplex.entryGroups.useDataProfileAspectdataplex.entryGroups.useDataQualityScorecardAspectdataplex.entryGroups.useManagedConnectorTypesdataplex.entryGroups.useReferenceEntryLinkdataplex.entryGroups.useSchemaAspectdataplex.entryGroups.useSchemaJoinAspectdataplex.entryGroups.useSchemaJoinEntryLinkdataplex.entryGroups.useUsageAspectdataplex.entryLinks.reference
Berikan peran ini pada project, bukan hanya pada grup entri, karena impor memeriksa izin
dataplex.entryLinks.referencepada project. Jika agen layanan tidak memiliki izin ini pada project, operasi transfer akan gagal dengan error sepertiPermission 'dataplex.entryLinks.reference' denied, dan tidak ada metadata yang diimpor.
Alih-alih memberikan kedua peran ini, Anda dapat memberikan peran
Dataplex Entry Group Owner
(roles/dataplex.entryGroupOwner) pada project yang berisi
grup entri tujuan. Peran ini mencakup izin kedua peran, dan juga memungkinkan agen layanan membuat, menghapus, dan mengelola akses ke semua grup entri dalam project.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.
Mengaktifkan API
Aktifkan Dataplex API dan BigQuery Data Transfer Service API.
Prasyarat Snowflake Horizon
Jika Anda juga ingin menjalankan kueri SQL atau tugas Spark terhadap katalog Snowflake jarak jauh, lihat Menyiapkan koneksi lintas cloud untuk Snowflake Horizon Catalog.
Konektor login ke Snowflake sebagai pengguna Snowflake dengan autentikasi pasangan kunci dan membaca metadata dari skema SNOWFLAKE.ACCOUNT_USAGE. Autentikasi sandi tidak didukung. Administrator Snowflake, seperti pengguna dengan peran ACCOUNTADMIN, harus menyelesaikan langkah-langkah berikut:
Buat peran untuk konektor dan beri peran tersebut akses ke
ACCOUNT_USAGEdan ke warehouse yang menjalankan kueri metadata:CREATE ROLE IF NOT EXISTS DATAPLEX_CATALOG_READER; GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE TO ROLE DATAPLEX_CATALOG_READER; GRANT USAGE ON WAREHOUSE WAREHOUSE_NAME TO ROLE DATAPLEX_CATALOG_READER;Ganti
WAREHOUSE_NAMEdengan nama warehouse Snowflake yang menjalankan kueri metadata.Buat pengguna layanan untuk konektor, atau gunakan pengguna yang ada, dan berikan peran:
CREATE USER IF NOT EXISTS USERNAME TYPE = SERVICE DEFAULT_ROLE = DATAPLEX_CATALOG_READER DEFAULT_WAREHOUSE = WAREHOUSE_NAME; GRANT ROLE DATAPLEX_CATALOG_READER TO USER USERNAME;Ganti
USERNAMEdengan nama pengguna Snowflake untuk konektor.Buat pasangan kunci RSA dengan kunci pribadi dalam format PKCS#8:
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pubUntuk mengenkripsi kunci pribadi, ganti
-nocryptdengan-v2 aes-256-cbcdan berikan frasa sandi saat Anda mengonfigurasi konektor. Jaga agar file kunci pribadi (rsa_key.p8) tetap aman karena Anda akan memberikannya saat mengonfigurasi konektor.Tetapkan kunci publik ke pengguna Snowflake:
ALTER USER USERNAME SET RSA_PUBLIC_KEY='PUBLIC_KEY';Ganti
PUBLIC_KEYdengan kontenrsa_key.pub, tidak termasuk baris-----BEGIN PUBLIC KEY-----dan-----END PUBLIC KEY-----.Opsional: Untuk mengimpor metadata tambahan, berikan hak istimewa berikut kepada peran konektor:
Profil data dan hasil kualitas data: Berikan peran aplikasi
SNOWFLAKE.DATA_QUALITY_MONITORING_VIEWER:GRANT APPLICATION ROLE SNOWFLAKE.DATA_QUALITY_MONITORING_VIEWER TO ROLE DATAPLEX_CATALOG_READER;Hasil kualitas data hanya diimpor untuk pemeriksaan yang dapat dilihat oleh peran, yang memerlukan
USAGEpada database dan skema,SELECTpada tabel, danUSAGEpada fungsi metrik data kustom.Kunci utama dan kunci asing: Berikan
USAGEpada database dan skema, sertaSELECTatauREFERENCESpada tabel.Nilai sampel dan petunjuk kustom tampilan semantik: Berikan
REFERENCESpada tampilan semantik.
Untuk menemukan ID akun yang Anda masukkan saat mengonfigurasi konektor, jalankan kueri berikut di Snowflake:
SELECT CURRENT_ORGANIZATION_NAME() || '-' || CURRENT_ACCOUNT_NAME();
Prasyarat jaringan
Agar BigQuery Data Transfer Service dapat terhubung dengan aman ke database eksternal atau sumber data cloud pihak ketiga dengan alamat IP pribadi di dalam jaringan pribadi, konfigurasikan lampiran jaringan melalui Private Service Connect.
Jika Anda terhubung ke lingkungan lokal atau instance yang dihosting di cloud menggunakan alamat IP publik, lampiran jaringan tidak diperlukan.
Mengonfigurasi konektor Snowflake Horizon
Konfigurasikan konektor Snowflake Horizon menggunakan konsolGoogle Cloud atau REST API.
Konsol
Di konsol Google Cloud , buka halaman Knowledge Catalog.
Di menu navigasi, di bagian Manage, klik Connectors, lalu klik Add connection.
Dalam daftar Connectors, pilih kartu Snowflake Horizon.
Di bagian Data source details, berikan detail koneksi untuk akun Snowflake Anda:
- Untuk Network attachment, pilih lampiran jaringan yang ada jika diperlukan, atau buat lampiran jaringan baru.
- Untuk Account Identifier, masukkan ID akun Snowflake Anda tanpa
.snowflakecomputing.com(misalnya,myorg-myaccount). Anda juga dapat memasukkan pencari lokasi akun, sepertixy12345.us-east-2.aws. - Untuk Username, masukkan pengguna Snowflake yang Anda konfigurasi untuk autentikasi pasangan kunci.
- Untuk Private Key, masukkan kunci pribadi PKCS#8 pengguna, seperti
konten file
rsa_key.p8. - Opsional: Untuk Private Key Passphrase, jika kunci pribadi dienkripsi, masukkan frasa sandinya.
- Opsional: Untuk Warehouse, masukkan warehouse yang menjalankan kueri metadata. Jika Anda tidak menentukan warehouse, konektor akan menggunakan warehouse default pengguna.
- Opsional: Untuk Role, masukkan peran yang digunakan konektor, seperti
DATAPLEX_CATALOG_READER. Jika Anda tidak menentukan peran, konektor akan menggunakan peran default pengguna. Untuk Snowflake objects to transfer, klik Browse untuk memilih database, skema, atau objek individual (tabel, tampilan, tampilan semantik, stage, fungsi, dan prosedur) yang akan diimpor. Memilih database atau skema akan mengimpor semua objek di dalamnya. Fungsi dan prosedur dicantumkan dengan jenis argumennya, seperti
CALC(NUMBER, VARCHAR).Anda juga dapat memasukkan objek secara manual dalam format
TYPE:ACCOUNT/DATABASE[/SCHEMA[/OBJECT]], denganTYPEadalahCATALOG(atauDATABASE),SCHEMA,TABLE,VIEW,SEMANTIC-MODEL,FILESET,FUNCTION, atauPROCEDURE(misalnya,SCHEMA:myorg-myaccount/SALES/PUBLIC). MasukkanACCOUNTdalam formatORG_NAME-ACCOUNT_NAMEhuruf kecil yang ditampilkan di Browse. Nama database, skema, dan objek peka huruf besar/kecil. Pola nama tidak didukung.
Di bagian Destination settings:
- Klik Browse dan pilih grup entri Knowledge Catalog yang ada untuk menyimpan metadata yang diimpor, atau klik Create new entry group.
- Pilih apakah akan menetapkan izin pada grup entri sekarang atau nanti.
Agar pengguna dapat melihat metadata yang diimpor, tetapkan izin pada grup entri. Jika Anda tidak memberikan peran Dataplex Entry Group Importer (
roles/dataplex.entryGroupImporter) atau izindataplex.entryGroups.importkepada agen layanan BigQuery Data Transfer Service di level project, berikan peran tersebut pada grup entri ini. Anda tetap harus memberikan peran Dataplex Entry and EntryLink Owner (roles/dataplex.entryOwner) pada project karena izindataplex.entryLinks.referencediperiksa di level project. Untuk mengetahui informasi selengkapnya, lihat Peran dan izin IAM.
Di bagian Transfer config name, untuk Nama tampilan, masukkan nama untuk tugas impor metadata.
Di bagian Schedule options, konfigurasikan frekuensi untuk tugas impor metadata. Jika Anda memilih On-demand, tugas hanya akan berjalan saat Anda memicunya secara manual.
Opsional: Di bagian Notification options, konfigurasikan notifikasi email atau Pub/Sub untuk kegagalan tugas.
Opsional: Di bagian Advanced options, konfigurasikan setelan enkripsi. Jika Anda memilih kunci enkripsi yang dikelola pelanggan (CMEK), kunci tersebut akan mengenkripsi semua data sementara yang di-stage sebelum memulai tugas impor metadata Knowledge Catalog. Kunci tidak mengenkripsi metadata di grup entri Knowledge Catalog tujuan.
Klik Simpan.
REST
Gunakan
metode
projects.locations.transferConfigs.create. Di resource
TransferConfig,
konfigurasi kolom berikut:
- Tetapkan kolom
dataSourceIdke"snowflake_horizon". - Di kolom
metadataDestination, isi kolomdataplexConfiguration.entryGroupdengan jalur resource grup entri Knowledge Catalog target:projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID. - Di kolom
params, tetapkan parameter berikut:connector.accountIdentifier(wajib): ID akun Snowflake Anda tanpa.snowflakecomputing.com(misalnya,myorg-myaccount) atau pencari lokasi akun (sepertixy12345.us-east-2.aws).connector.authentication.username(wajib): pengguna Snowflake.connector.authentication.privateKey(wajib): kunci pribadi pengguna dalam format PEM PKCS#8.connector.authentication.privateKeyPassphrase(opsional): frasa sandi kunci pribadi, jika kunci dienkripsi.connector.warehouse(opsional): warehouse yang menjalankan kueri metadata. Jika Anda menghapus parameter ini, konektor akan menggunakan warehouse default pengguna.connector.role(opsional): peran yang digunakan konektor. Jika Anda menghapus parameter ini, konektor akan menggunakan peran default pengguna.connector.networkAttachment(opsional): lampiran jaringan dalam formatprojects/PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT_ID.assets(wajib): daftar objek Snowflake yang akan diimpor dalam formatTYPE:ACCOUNT/DATABASE[/SCHEMA[/OBJECT]], seperti["SCHEMA:myorg-myaccount/SALES/PUBLIC"].
- Opsional: Untuk menyimpan kunci pribadi di luar konfigurasi transfer,
simpan di Secret Manager:
- Tetapkan
connector.authentication.privateKey(danconnector.authentication.privateKeyPassphrase, jika Anda menggunakannya) ke nama resource versi secret dalam formatprojects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID, dan tambahkan nama parameter tersebut ke kolomparamConfig.secretManagerManagedParams. - Berikan peran
Secret Manager Secret Accessor
(
roles/secretmanager.secretAccessor) pada setiap secret kepada agen layanan BigQuery Data Transfer Service dari project yang berisi konfigurasi transfer (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com). Secret dapat berada di project yang berbeda. Jika agen layanan tidak dapat membaca secret, operasi akan gagal sebelum dimulai dengan error sepertiFailed to retrieve secret ... Permission 'secretmanager.versions.access' denied. BigQuery Data Transfer Service membaca secret di awal setiap operasi, jadi jika Anda menetapkanVERSION_IDkelatest, kunci yang dirotasi akan digunakan mulai dari operasi berikutnya.
- Tetapkan
Contoh berikut menunjukkan isi permintaan TransferConfig:
{
"displayName": "snowflake-metadata-import",
"dataSourceId": "snowflake_horizon",
"schedule": "every 24 hours",
"params": {
"connector.accountIdentifier": "myorg-myaccount",
"connector.authentication.username": "USERNAME",
"connector.authentication.privateKey": "PRIVATE_KEY",
"connector.warehouse": "WAREHOUSE_NAME",
"connector.role": "DATAPLEX_CATALOG_READER",
"assets": [
"SCHEMA:myorg-myaccount/SALES/PUBLIC"
]
},
"metadataDestination": {
"dataplexConfiguration": {
"entryGroup": "projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID"
}
}
}
Tugas berjalan secara otomatis berdasarkan jadwal Anda, atau Anda dapat memicunya secara manual.
Memantau tugas konektor Snowflake Horizon
Pantau tugas konektor Snowflake Horizon menggunakan konsolGoogle Cloud atau REST API.
Konsol
- Di konsol Google Cloud , di halaman Konektor, klik nama tampilan tugas transfer Snowflake Horizon.
- Di tab Run history, klik View details untuk melihat log.
- Untuk melihat entri yang dibuat, klik tab Details, lalu klik link grup entri Metadata destination.
REST
- Untuk mencantumkan operasi konfigurasi transfer dan melihat statusnya, gunakan metode
projects.locations.transferConfigs.runs.list. Setiap operasi mengimpor metadata yang dikumpulkan ke Knowledge Catalog dengan tugas impor metadata yang ID-nya adalah
dts-run-RUN_ID. Untuk melihat hasil impor, seperti jumlah entri yang dibuat, filter log tugas di Logging menggunakan kueri berikut:logName="projects/PROJECT_ID/logs/dataplex.googleapis.com%2Fmetadata_job" AND resource.labels.metadata_job_id="dts-run-RUN_ID"Untuk melihat hasil impor tanpa menggunakan Logging, panggil metode
projects.locations.metadataJobs.getdiprojects/PROJECT_ID/locations/LOCATION/metadataJobs/dts-run-RUN_ID. KolomimportResultmenampilkan jumlah entri dan link entri yang dibuat, diperbarui, tidak diubah, dan dihapus.
Menelusuri dan melihat metadata Snowflake Horizon
Di konsol Google Cloud , buka halaman Search Knowledge Catalog.
Di panel Filters, filter aset Snowflake Horizon menggunakan bagian Project, Systems, dan Type aliases. Untuk memfilter semua metadata Snowflake Horizon, di bagian Systems, pilih Imported Context, lalu di subbagian Managed Connectors, pilih Snowflake Horizon.
Di kolom penelusuran, masukkan kata kunci atau kueri penelusuran bahasa alami. Misalnya, untuk melihat semua aset Snowflake Horizon melalui penelusuran kata kunci, masukkan
system=SNOWFLAKE.Untuk mempelajari lebih lanjut cara menelusuri resource, lihat Menelusuri resource di Knowledge Catalog. Untuk mempelajari lebih lanjut ekspresi yang dapat Anda gunakan di kolom penelusuran, lihat Sintaksis penelusuran untuk Knowledge Catalog.
Anda juga dapat menggunakan API LookupContext untuk mengambil konteks LLM untuk resource Snowflake Horizon tertentu. Untuk mengetahui informasi selengkapnya, lihat Mengambil konteks untuk aset data.
Langkah berikutnya
- Pelajari cara mengelola tugas konektor.