Elimina i silos di dati ed evita di passare da uno strumento all'altro utilizzando un connettore Knowledge Catalog (in precedenza Dataplex Universal Catalog) per importare i metadati da Snowflake Horizon direttamente in Google Cloud.
Questo connettore supporta le istanze Snowflake Horizon ospitate su Google Cloud, Microsoft Azure o Amazon Web Services (AWS).
La tabella seguente elenca i metadati acquisiti dal connettore Snowflake Horizon:
| Categoria | Metadati acquisiti |
|---|---|
| Tecnico |
|
| Operativo |
|
| Business |
|
| Semantici |
|
Limitazioni
Il connettore Snowflake Horizon presenta le seguenti limitazioni:
- La derivazione non è supportata.
- Il connettore importa i metadati per le tabelle Iceberg, ma non li collega automaticamente alle tabelle fisiche sottostanti nel catalogo Iceberg REST (IRC).
- I tag, i risultati della qualità dei dati e della profilazione, i risultati della classificazione, i join della cronologia delle query e gli insight sull'utilizzo che leggono
ACCESS_HISTORY(utenti frequenti e tabelle unite di frequente) richiedono Snowflake Enterprise Edition o versioni successive.
Prima di iniziare
Prima di poter importare i metadati da Snowflake Horizon, completa le seguenti attività:
- Concedi i ruoli e le autorizzazioni richiesti.
- Abilita l'API Dataplex e l'API BigQuery Data Transfer Service.
- Soddisfa i prerequisiti di Snowflake Horizon.
- Soddisfare i prerequisiti di rete.
Ruoli e autorizzazioni IAM
Per creare e gestire un job del connettore di Knowledge Catalog, devi disporre di ruoli Identity and Access Management (IAM) che concedono le autorizzazioni per Knowledge Catalog e BigQuery Data Transfer Service.
Per ottenere le autorizzazioni necessarie per configurare un connettore Snowflake Horizon, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Per creare e gestire i gruppi di voci:
Dataplex Catalog Admin
(
roles/dataplex.catalogAdmin), Dataplex Catalog Editor (roles/dataplex.catalogEditor) o Dataplex Entry Group Owner (roles/dataplex.entryGroupOwner) nel progetto. - Per visualizzare i metadati di Snowflake Horizon:
Dataplex Catalog Viewer
(
roles/dataplex.catalogViewer) nel progetto. - Per creare e gestire i job di trasferimento di BigQuery Data Transfer Service:
Amministratore BigQuery
(
roles/bigquery.admin) sul progetto. - Per visualizzare i log in Cloud Logging:
Visualizzatore log
(
roles/logging.viewer) nel progetto.
Devi inoltre concedere all'agente di servizio BigQuery Data Transfer Service (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com) entrambi i seguenti ruoli:
- Dataplex Entry Group Importer
(
roles/dataplex.entryGroupImporter), sul gruppo di voci di destinazione o sul progetto che lo contiene. Questo ruolo consente all'agente di servizio di importare i metadati nel gruppo di voci (dataplex.entryGroups.import). Dataplex Entry and EntryLink Owner (
roles/dataplex.entryOwner), nel progetto che contiene il gruppo di voci di destinazione. Questo ruolo consente all'agente di servizio di importare metadati di utilizzo, aziendali e di qualità dei dati, nonché link alle voci. Include le seguenti autorizzazioni:dataplex.entryGroups.useDataProfileAspectdataplex.entryGroups.useDataQualityScorecardAspectdataplex.entryGroups.useManagedConnectorTypesdataplex.entryGroups.useReferenceEntryLinkdataplex.entryGroups.useSchemaAspectdataplex.entryGroups.useSchemaJoinAspectdataplex.entryGroups.useSchemaJoinEntryLinkdataplex.entryGroups.useUsageAspectdataplex.entryLinks.reference
Concedi questo ruolo al progetto, non solo al gruppo di voci, perché l'importazione controlla l'autorizzazione
dataplex.entryLinks.referencesul progetto. Se l'agente di servizio non dispone di questa autorizzazione per il progetto, l'esecuzione del trasferimento non riesce e viene visualizzato un errore comePermission 'dataplex.entryLinks.reference' denied. Inoltre, non vengono importati metadati.
Anziché concedere entrambi i ruoli, puoi concedere il ruolo Dataplex Entry Group Owner (roles/dataplex.entryGroupOwner) al progetto che contiene il gruppo di voci di destinazione. Questo ruolo include le autorizzazioni di entrambi i ruoli e consente inoltre all'agente di servizio di creare, eliminare e gestire l'accesso a tutti i gruppi di voci nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso.
Abilita API
Abilita l'API Dataplex e l'API BigQuery Data Transfer Service.
Prerequisiti di Snowflake Horizon
Se vuoi anche eseguire query SQL o job Spark sul catalogo Snowflake remoto, consulta Configura una connessione cross-cloud per Snowflake Horizon Catalog.
Il connettore accede a Snowflake come utente Snowflake con autenticazione con coppia di chiavi e legge i metadati dallo schema SNOWFLAKE.ACCOUNT_USAGE. L'autenticazione tramite password non è supportata. Un amministratore di Snowflake, ad esempio un utente con il ruolo ACCOUNTADMIN, deve completare i seguenti passaggi:
Crea un ruolo per il connettore e concedigli l'accesso a
ACCOUNT_USAGEe a un warehouse che esegue le query dei metadati: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;Sostituisci
WAREHOUSE_NAMEcon il nome del warehouse Snowflake che esegue le query dei metadati.Crea un utente di servizio per il connettore o utilizza un utente esistente e concedigli il ruolo:
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;Sostituisci
USERNAMEcon il nome dell'utente Snowflake per il connettore.Genera una coppia di chiave RSA con la chiave privata in formato 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.pubPer criptare la chiave privata, sostituisci
-nocryptcon-v2 aes-256-cbce fornisci la passphrase quando configuri il connettore. Conserva il file della chiave privata (rsa_key.p8) in un luogo sicuro, perché dovrai fornirlo quando configuri il connettore.Assegna la chiave pubblica all'utente Snowflake:
ALTER USER USERNAME SET RSA_PUBLIC_KEY='PUBLIC_KEY';Sostituisci
PUBLIC_KEYcon i contenuti dirsa_key.pub, escluse le righe-----BEGIN PUBLIC KEY-----e-----END PUBLIC KEY-----.(Facoltativo) Per importare metadati aggiuntivi, concedi al ruolo del connettore i seguenti privilegi:
Profili dei dati e risultati della qualità dei dati: concedi il ruolo dell'applicazione
SNOWFLAKE.DATA_QUALITY_MONITORING_VIEWER:GRANT APPLICATION ROLE SNOWFLAKE.DATA_QUALITY_MONITORING_VIEWER TO ROLE DATAPLEX_CATALOG_READER;I risultati della qualità dei dati vengono importati solo per i controlli che il ruolo può visualizzare, il che richiede
USAGEsul database e sullo schema,SELECTsulla tabella eUSAGEsulle funzioni di metrica dei dati personalizzate.Chiavi primarie e chiavi esterne: concedi
USAGEsul database e sullo schema eSELECToREFERENCESsulle tabelle.Valori di esempio e istruzioni personalizzate delle viste semantiche: concedi
REFERENCESsulle viste semantiche.
Per trovare l'identificatore dell'account da inserire durante la configurazione del connettore, esegui la seguente query in Snowflake:
SELECT CURRENT_ORGANIZATION_NAME() || '-' || CURRENT_ACCOUNT_NAME();
Prerequisiti di networking
Per consentire a BigQuery Data Transfer Service di connettersi in modo sicuro a database esterni o origini dati cloud di terze parti con un indirizzo IP privato all'interno di una rete privata, configura un collegamento di rete tramite Private Service Connect.
Se ti connetti a un ambiente on-premise o a un'istanza ospitata nel cloud utilizzando un indirizzo IP pubblico, non è necessario un collegamento di rete.
Configura un connettore Snowflake Horizon
Configura un connettore Snowflake Horizon utilizzando la consoleGoogle Cloud o l'API REST.
Console
Nella console Google Cloud , vai alla pagina Knowledge Catalog.
Nel menu di navigazione, nella sezione Gestisci, fai clic su Connettori, quindi su Aggiungi connessione.
Nell'elenco Connettori, seleziona la scheda Snowflake Horizon.
Nella sezione Dettagli origine dati, fornisci i dettagli della connessione per il tuo account Snowflake:
- Per Collegamento di rete, seleziona un collegamento di rete esistente, se necessario, o creane uno.
- In Identificatore account, inserisci l'identificatore dell'account Snowflake senza
.snowflakecomputing.com(ad esempio,myorg-myaccount). Puoi anche inserire un localizzatore di account, ad esempioxy12345.us-east-2.aws. - In Nome utente, inserisci l'utente Snowflake che hai configurato per l'autenticazione con coppia di chiavi.
- In Chiave privata, inserisci la chiave privata PKCS#8 dell'utente, ad esempio i contenuti del file
rsa_key.p8. - (Facoltativo) In Passphrase chiave privata, se la chiave privata è criptata, inserisci la relativa passphrase.
- (Facoltativo) Per Warehouse, inserisci il warehouse che esegue le query dei metadati. Se non specifichi un warehouse, il connettore utilizza il warehouse predefinito dell'utente.
- (Facoltativo) In Ruolo, inserisci il ruolo utilizzato dal connettore, ad esempio
DATAPLEX_CATALOG_READER. Se non specifichi un ruolo, il connettore utilizza il ruolo predefinito dell'utente. In Oggetti Snowflake da trasferire, fai clic su Sfoglia per selezionare i database, gli schemi o i singoli oggetti (tabelle, viste, viste semantiche, fasi, funzioni e procedure) da importare. Se selezioni un database o uno schema, vengono importati tutti gli oggetti al suo interno. Le funzioni e le procedure sono elencate con i relativi tipi di argomenti, ad esempio
CALC(NUMBER, VARCHAR).Puoi anche inserire gli oggetti manualmente nel formato
TYPE:ACCOUNT/DATABASE[/SCHEMA[/OBJECT]], doveTYPEèCATALOG(oDATABASE),SCHEMA,TABLE,VIEW,SEMANTIC-MODEL,FILESET,FUNCTIONoPROCEDURE(ad esempio,SCHEMA:myorg-myaccount/SALES/PUBLIC). InserisciACCOUNTnel formatoORG_NAME-ACCOUNT_NAMEminuscolo mostrato in Sfoglia. I nomi di database, schemi e oggetti sono sensibili alle maiuscole. I pattern dei nomi non sono supportati.
Nella sezione Impostazioni destinazione:
- Fai clic su Sfoglia e seleziona un gruppo di voci di Knowledge Catalog esistente per archiviare i metadati importati oppure fai clic su Crea nuovo gruppo di voci.
- Scegli se impostare le autorizzazioni per il gruppo di voci ora o in un secondo momento.
Per consentire agli utenti di visualizzare i metadati importati, imposta le autorizzazioni sul gruppo di voci. Se non hai concesso il ruolo Dataplex Entry Group Importer (
roles/dataplex.entryGroupImporter) o l'autorizzazionedataplex.entryGroups.importall'agente di servizio BigQuery Data Transfer Service a livello di progetto, concedilo a questo gruppo di voci. Devi comunque concedere il ruolo Dataplex Entry and EntryLink Owner (roles/dataplex.entryOwner) al progetto perché l'autorizzazionedataplex.entryLinks.referenceviene controllata a livello di progetto. Per saperne di più, consulta Ruoli e autorizzazioni IAM.
Nella sezione Nome configurazione di trasferimento, per Nome visualizzato, inserisci un nome per il job di importazione dei metadati.
Nella sezione Opzioni di pianificazione, configura la frequenza del job di importazione dei metadati. Se selezioni On demand, il job viene eseguito solo quando lo attivi manualmente.
(Facoltativo) Nella sezione Opzioni di notifica, configura una notifica via email o Pub/Sub per gli errori dei job.
(Facoltativo) Nella sezione Opzioni avanzate, configura le impostazioni di crittografia. Se selezioni una chiave di crittografia gestita dal cliente (CMEK), questa cripta tutti i dati temporanei preparati prima di avviare i job di importazione dei metadati di Knowledge Catalog. La chiave non cripta i metadati nel gruppo di voci di Knowledge Catalog di destinazione.
Fai clic su Salva.
REST
Utilizza il metodo projects.locations.transferConfigs.create. Nella risorsa TransferConfig, configura i seguenti campi:
- Imposta il campo
dataSourceIdsu"snowflake_horizon". - Nel campo
metadataDestination, compila il campodataplexConfiguration.entryGroupcon il percorso della risorsa del gruppo di voci di Knowledge Catalog di destinazione:projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID. - Nel campo
params, imposta i seguenti parametri:connector.accountIdentifier(obbligatorio): l'identificatore del tuo account Snowflake senza.snowflakecomputing.com(ad esempio,myorg-myaccount) o un localizzatore di account (ad esempio,xy12345.us-east-2.aws).connector.authentication.username(obbligatorio): l'utente Snowflake.connector.authentication.privateKey(obbligatorio): la chiave privata dell'utente in formato PEM PKCS#8.connector.authentication.privateKeyPassphrase(facoltativo): la passphrase della chiave privata, se la chiave è criptata.connector.warehouse(facoltativo): il data warehouse che esegue le query dei metadati. Se ometti questo parametro, il connettore utilizza il data warehouse predefinito dell'utente.connector.role(facoltativo): il ruolo utilizzato dal connettore. Se ometto questo parametro, il connettore utilizza il ruolo predefinito dell'utente.- (Facoltativo)
connector.networkAttachment: il collegamento di rete nel formatoprojects/PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT_ID. assets(obbligatorio): l'elenco degli oggetti Snowflake da importare nel formatoTYPE:ACCOUNT/DATABASE[/SCHEMA[/OBJECT]], ad esempio["SCHEMA:myorg-myaccount/SALES/PUBLIC"].
- (Facoltativo) Per mantenere la chiave privata fuori dalla configurazione del trasferimento, archiviala in Secret Manager:
- Imposta
connector.authentication.privateKey(econnector.authentication.privateKeyPassphrase, se ne utilizzi uno) sul nome della risorsa della versione del secret nel formatoprojects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/VERSION_IDe aggiungi i nomi dei parametri al campoparamConfig.secretManagerManagedParams. - Concedi il ruolo Secret Manager Secret Accessor (
roles/secretmanager.secretAccessor) su ogni secret all'agente di servizio BigQuery Data Transfer Service del progetto che contiene la configurazione del trasferimento (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com). I secret possono trovarsi in un progetto diverso. Se l'agente di servizio non riesce a leggere un secret, l'esecuzione non va a buon fine prima di iniziare con un errore comeFailed to retrieve secret ... Permission 'secretmanager.versions.access' denied. BigQuery Data Transfer Service legge i secret all'inizio di ogni esecuzione, quindi se impostiVERSION_IDsulatest, viene utilizzata una chiave ruotata a partire dall'esecuzione successiva.
- Imposta
L'esempio seguente mostra un corpo della richiesta 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"
}
}
}
Il job viene eseguito automaticamente in base alla pianificazione oppure puoi attivarlo manualmente.
Monitora un job del connettore Snowflake Horizon
Monitora un job del connettore Snowflake Horizon utilizzando la consoleGoogle Cloud o l'API REST.
Console
- Nella console Google Cloud , nella pagina Connettori, fai clic sul Nome visualizzato del job di trasferimento di Snowflake Horizon.
- Nella scheda Cronologia esecuzioni, fai clic su Visualizza dettagli per visualizzare i log.
- Per visualizzare le voci create, fai clic sulla scheda Dettagli, quindi sul link del gruppo di voci Destinazione dei metadati.
REST
- Per elencare le esecuzioni di una configurazione di trasferimento e visualizzarne lo stato, utilizza il metodo
projects.locations.transferConfigs.runs.list. Ogni esecuzione importa i metadati raccolti in Knowledge Catalog con un job di importazione dei metadati il cui ID è
dts-run-RUN_ID. Per visualizzare il risultato dell'importazione, ad esempio il numero di voci create, filtra i log del job in Logging utilizzando la seguente query:logName="projects/PROJECT_ID/logs/dataplex.googleapis.com%2Fmetadata_job" AND resource.labels.metadata_job_id="dts-run-RUN_ID"Per visualizzare il risultato di un'importazione senza utilizzare Logging, chiama il metodo
projects.locations.metadataJobs.getsuprojects/PROJECT_ID/locations/LOCATION/metadataJobs/dts-run-RUN_ID. Il campoimportResultmostra il numero di voci e link di voci creati, aggiornati, invariati ed eliminati.
Cerca e visualizza i metadati di Snowflake Horizon
Nella console Google Cloud , vai alla pagina Ricerca di Knowledge Catalog.
Nel riquadro Filtri, filtra gli asset Snowflake Horizon utilizzando le sezioni Progetto, Sistemi e Alias di tipo. Per filtrare tutti i metadati di Snowflake Horizon, nella sezione Sistemi, seleziona Contesto importato, quindi nella sottosezione Connettori gestiti, seleziona Snowflake Horizon.
Nel campo di ricerca, inserisci una parola chiave o una query di ricerca in linguaggio naturale. Ad esempio, per visualizzare tutti gli asset Snowflake Horizon tramite la ricerca per parole chiave, inserisci
system=SNOWFLAKE.Per scoprire di più sulla ricerca di risorse, consulta Cerca risorse in Knowledge Catalog. Per scoprire di più sulle espressioni che puoi utilizzare nel campo di ricerca, consulta Sintassi di ricerca per Knowledge Catalog.
Puoi anche utilizzare l'API LookupContext per recuperare il contesto LLM per risorse Snowflake Horizon specifiche. Per saperne di più, consulta Recupera il contesto per gli asset di dati.
Passaggi successivi
- Scopri come gestire i job del connettore.