Importa i metadati da Snowflake Horizon

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
  • Metastore (account Snowflake)
  • Catalogo (database)
  • Schema
  • Tabella (incluse tabelle temporanee, esterne, dinamiche, interattive, ibride e Apache Iceberg) e colonne
  • Vista (standard, materializzata e sicura)
  • Fasi (interne ed esterne), importate come set di file
  • Funzioni definite dall'utente (UDF) e stored procedure
Operativo
  • Metriche di utilizzo (visualizzazioni, letture e scritture nell'arco di 30 e 90 giorni; utenti frequenti e tabelle unite di frequente nell'arco di 30 giorni)
  • Chiavi primarie e chiavi esterne
Business
  • Tag (tag di oggetti, colonne e membri della vista semantica)
  • Qualità dei dati (aspettative della funzione di metrica dei dati, rilevamento di anomalie e risultati del monitoraggio automatico della qualità dei dati)
  • Profilazione dei dati (misurazioni delle funzioni delle metriche dei dati e risultati della classificazione dei dati)
  • Join e relazioni (dedotte dalla cronologia delle query, dichiarate nelle viste semantiche e nelle dipendenze tra viste e tabelle)
  • Proprietario (ruolo proprietario), ora di creazione e ora dell'ultima modifica
Semantici
  • Vista semantica (tabelle logiche, dimensioni, fatti, metriche, relazioni, sinonimi, valori di esempio e istruzioni personalizzate)
  • Proprietario della visualizzazione semantica
  • Utilizzo della visualizzazione semantica (visualizzazioni e letture in 30 e 90 giorni; utenti frequenti e tabelle unite di frequente in 30 giorni)

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à:

  1. Concedi i ruoli e le autorizzazioni richiesti.
  2. Abilita l'API Dataplex e l'API BigQuery Data Transfer Service.
  3. Soddisfa i prerequisiti di Snowflake Horizon.
  4. 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:

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.useDataProfileAspect
    • dataplex.entryGroups.useDataQualityScorecardAspect
    • dataplex.entryGroups.useManagedConnectorTypes
    • dataplex.entryGroups.useReferenceEntryLink
    • dataplex.entryGroups.useSchemaAspect
    • dataplex.entryGroups.useSchemaJoinAspect
    • dataplex.entryGroups.useSchemaJoinEntryLink
    • dataplex.entryGroups.useUsageAspect
    • dataplex.entryLinks.reference

    Concedi questo ruolo al progetto, non solo al gruppo di voci, perché l'importazione controlla l'autorizzazione dataplex.entryLinks.reference sul 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 come Permission '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.

Abilita le API

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:

  1. Crea un ruolo per il connettore e concedigli l'accesso a ACCOUNT_USAGE e 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_NAME con il nome del warehouse Snowflake che esegue le query dei metadati.

  2. 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 USERNAME con il nome dell'utente Snowflake per il connettore.

  3. 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.pub
    

    Per criptare la chiave privata, sostituisci -nocrypt con -v2 aes-256-cbc e 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.

  4. Assegna la chiave pubblica all'utente Snowflake:

    ALTER USER USERNAME SET RSA_PUBLIC_KEY='PUBLIC_KEY';
    

    Sostituisci PUBLIC_KEY con i contenuti di rsa_key.pub, escluse le righe -----BEGIN PUBLIC KEY----- e -----END PUBLIC KEY-----.

  5. (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 USAGE sul database e sullo schema, SELECT sulla tabella e USAGE sulle funzioni di metrica dei dati personalizzate.

    • Chiavi primarie e chiavi esterne: concedi USAGE sul database e sullo schema e SELECT o REFERENCES sulle tabelle.

    • Valori di esempio e istruzioni personalizzate delle viste semantiche: concedi REFERENCES sulle 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

  1. Nella console Google Cloud , vai alla pagina Knowledge Catalog.

    Vai a Knowledge Catalog

  2. Nel menu di navigazione, nella sezione Gestisci, fai clic su Connettori, quindi su Aggiungi connessione.

  3. Nell'elenco Connettori, seleziona la scheda Snowflake Horizon.

  4. 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 esempio xy12345.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]], dove TYPE è CATALOG (o DATABASE), SCHEMA, TABLE, VIEW, SEMANTIC-MODEL, FILESET, FUNCTION o PROCEDURE (ad esempio, SCHEMA:myorg-myaccount/SALES/PUBLIC). Inserisci ACCOUNT nel formato ORG_NAME-ACCOUNT_NAME minuscolo mostrato in Sfoglia. I nomi di database, schemi e oggetti sono sensibili alle maiuscole. I pattern dei nomi non sono supportati.

  5. 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'autorizzazione dataplex.entryGroups.import all'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'autorizzazione dataplex.entryLinks.reference viene controllata a livello di progetto. Per saperne di più, consulta Ruoli e autorizzazioni IAM.
  6. Nella sezione Nome configurazione di trasferimento, per Nome visualizzato, inserisci un nome per il job di importazione dei metadati.

  7. 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.

  8. (Facoltativo) Nella sezione Opzioni di notifica, configura una notifica via email o Pub/Sub per gli errori dei job.

  9. (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.

  10. Fai clic su Salva.

REST

Utilizza il metodo projects.locations.transferConfigs.create. Nella risorsa TransferConfig, configura i seguenti campi:

  • Imposta il campo dataSourceId su "snowflake_horizon".
  • Nel campo metadataDestination, compila il campo dataplexConfiguration.entryGroup con 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 formato projects/PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT_ID.
    • assets (obbligatorio): l'elenco degli oggetti Snowflake da importare nel formato TYPE: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:
    1. Imposta connector.authentication.privateKey (e connector.authentication.privateKeyPassphrase, se ne utilizzi uno) sul nome della risorsa della versione del secret nel formato projects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID e aggiungi i nomi dei parametri al campo paramConfig.secretManagerManagedParams.
    2. 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 come Failed to retrieve secret ... Permission 'secretmanager.versions.access' denied. BigQuery Data Transfer Service legge i secret all'inizio di ogni esecuzione, quindi se imposti VERSION_ID su latest, viene utilizzata una chiave ruotata a partire dall'esecuzione successiva.

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

  1. Nella console Google Cloud , nella pagina Connettori, fai clic sul Nome visualizzato del job di trasferimento di Snowflake Horizon.
  2. Nella scheda Cronologia esecuzioni, fai clic su Visualizza dettagli per visualizzare i log.
  3. 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.get su projects/PROJECT_ID/locations/LOCATION/metadataJobs/dts-run-RUN_ID. Il campo importResult mostra il numero di voci e link di voci creati, aggiornati, invariati ed eliminati.

Cerca e visualizza i metadati di Snowflake Horizon

  1. Nella console Google Cloud , vai alla pagina Ricerca di Knowledge Catalog.

    Vai alla Ricerca

  2. 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.

  3. 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