Mit einem Knowledge Catalog-Connector (ehemals Dataplex Universal Catalog) können Sie Metadaten aus Snowflake Horizon direkt in Google Cloudimportieren. So können Sie Datensilos aufbrechen und müssen nicht mehr zwischen Tools wechseln.
Dieser Connector unterstützt Snowflake Horizon-Instanzen, die aufGoogle Cloud, Microsoft Azure oder Amazon Web Services (AWS) gehostet werden.
In der folgenden Tabelle sind die Metadaten aufgeführt, die der Snowflake Horizon-Connector erfasst:
| Kategorie | Metadaten erfasst |
|---|---|
| Technisch |
|
| Operativ |
|
| Unternehmen |
|
| Semantisch |
|
Beschränkungen
Für den Snowflake Horizon-Connector gelten die folgenden Einschränkungen:
- Die Herkunft wird nicht unterstützt.
- Der Connector importiert die Metadaten für Ihre Iceberg-Tabellen, verknüpft diese Metadaten jedoch nicht automatisch mit den zugrunde liegenden physischen Tabellen in Ihrem Iceberg REST Catalog (IRC).
- Für Tags, Ergebnisse zur Datenqualität und Profilerstellung, Klassifizierungsergebnisse, Joins des Abfrageverlaufs und Nutzungsstatistiken, die
ACCESS_HISTORY(häufige Nutzer und häufig verknüpfte Tabellen) lesen, ist die Snowflake Enterprise Edition oder höher erforderlich.
Hinweis
Bevor Sie Metadaten aus Snowflake Horizon importieren können, müssen Sie die folgenden Aufgaben ausführen:
- Weisen Sie die erforderlichen Rollen und Berechtigungen zu.
- Aktivieren Sie die Dataplex API und die BigQuery Data Transfer Service API.
- Sie erfüllen die Voraussetzungen für Snowflake Horizon.
- Netzwerkvoraussetzungen erfüllen
IAM-Rollen und -Berechtigungen
Zum Erstellen und Verwalten eines Knowledge Catalog-Connector-Jobs benötigen Sie IAM-Rollen (Identity and Access Management), die Berechtigungen für Knowledge Catalog und den BigQuery Data Transfer Service gewähren.
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren eines Snowflake Horizon-Connectors benötigen:
- Zum Erstellen und Verwalten von Eintragsgruppen:
Dataplex Catalog Admin
(
roles/dataplex.catalogAdmin), Dataplex Catalog Editor (roles/dataplex.catalogEditor) oder Dataplex Entry Group Owner (roles/dataplex.entryGroupOwner) für das Projekt. - Zum Ansehen von Snowflake Horizon-Metadaten: Dataplex Catalog Viewer (
roles/dataplex.catalogViewer) für das Projekt. - Zum Erstellen und Verwalten von BigQuery Data Transfer Service-Übertragungsjobs: BigQuery-Administrator (
roles/bigquery.admin) für das Projekt. - Zum Aufrufen von Logs in Cloud Logging:
Loganzeige
(
roles/logging.viewer) für das Projekt.
Außerdem müssen Sie dem Dienst-Agent für BigQuery Data Transfer Service (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.) die beiden folgenden Rollen zuweisen:
- Dataplex Entry Group Importer (
roles/dataplex.entryGroupImporter) für die Zieleintragsgruppe oder das Projekt, das sie enthält. Mit dieser Rolle kann der Dienst-Agent Metadaten in die Eintragsgruppe (dataplex.entryGroups.import) importieren. Dataplex Entry and EntryLink Owner (
roles/dataplex.entryOwner) für das Projekt, das die Ziel-Eintragsgruppe enthält. Mit dieser Rolle kann der Dienst-Agent Metadaten zur Nutzung, zu Geschäftsdaten und zur Datenqualität sowie Eintragslinks importieren. Sie enthält die folgenden Berechtigungen:dataplex.entryGroups.useDataProfileAspectdataplex.entryGroups.useDataQualityScorecardAspectdataplex.entryGroups.useManagedConnectorTypesdataplex.entryGroups.useReferenceEntryLinkdataplex.entryGroups.useSchemaAspectdataplex.entryGroups.useSchemaJoinAspectdataplex.entryGroups.useSchemaJoinEntryLinkdataplex.entryGroups.useUsageAspectdataplex.entryLinks.reference
Weisen Sie diese Rolle dem Projekt zu, nicht nur der Eintraggruppe, da beim Import die Berechtigung
dataplex.entryLinks.referencefür das Projekt geprüft wird. Wenn der Dienst-Agent diese Berechtigung für das Projekt nicht hat, schlägt die Übertragungsausführung mit einem Fehler wiePermission 'dataplex.entryLinks.reference' deniedfehl und es werden keine Metadaten importiert.
Anstatt beide Rollen zuzuweisen, können Sie die Rolle Dataplex Entry Group Owner (roles/dataplex.entryGroupOwner) für das Projekt zuweisen, das die Ziel-Eintragsgruppe enthält. Diese Rolle enthält die Berechtigungen beider Rollen und ermöglicht es dem Dienst-Agent außerdem, den Zugriff auf alle Eintragungsgruppen im Projekt zu erstellen, zu löschen und zu verwalten.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.
APIs aktivieren
Aktivieren Sie die Dataplex API und die BigQuery Data Transfer Service API.
Voraussetzungen für Snowflake Horizon
Wenn Sie auch SQL-Abfragen oder Spark-Jobs für den Remote-Snowflake-Katalog ausführen möchten, lesen Sie den Hilfeartikel Cloudübergreifende Verbindung für Snowflake Horizon Catalog einrichten.
Der Connector meldet sich als Snowflake-Nutzer mit Schlüsselpaar-Authentifizierung bei Snowflake an und liest Metadaten aus dem SNOWFLAKE.ACCOUNT_USAGE-Schema. Die Passwortauthentifizierung wird nicht unterstützt. Ein Snowflake-Administrator, z. B. ein Nutzer mit der Rolle ACCOUNTADMIN, muss die folgenden Schritte ausführen:
Erstellen Sie eine Rolle für den Connector und gewähren Sie ihr Zugriff auf
ACCOUNT_USAGEund auf ein Warehouse, das die Metadatenabfragen ausführt: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;Ersetzen Sie
WAREHOUSE_NAMEdurch den Namen des Snowflake-Warehouse, in dem die Metadatenabfragen ausgeführt werden.Erstellen Sie einen Dienstnutzer für den Connector oder verwenden Sie einen vorhandenen Nutzer und weisen Sie ihm die Rolle zu:
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;Ersetzen Sie
USERNAMEdurch den Namen des Snowflake-Nutzers für den Connector.Generieren Sie ein RSA-Schlüsselpaar mit dem privaten Schlüssel im PKCS#8-Format:
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pubWenn Sie den privaten Schlüssel verschlüsseln möchten, ersetzen Sie
-nocryptdurch-v2 aes-256-cbcund geben Sie die Passphrase an, wenn Sie den Connector konfigurieren. Bewahren Sie die Datei mit dem privaten Schlüssel (rsa_key.p8) sicher auf, da Sie sie beim Konfigurieren des Connectors angeben müssen.Weisen Sie dem Snowflake-Nutzer den öffentlichen Schlüssel zu:
ALTER USER USERNAME SET RSA_PUBLIC_KEY='PUBLIC_KEY';Ersetzen Sie
PUBLIC_KEYdurch den Inhalt vonrsa_key.pub, mit Ausnahme der Zeilen-----BEGIN PUBLIC KEY-----und-----END PUBLIC KEY-----.Optional: Wenn Sie zusätzliche Metadaten importieren möchten, weisen Sie der Connector-Rolle die folgenden Berechtigungen zu:
Datenprofile und Datenqualitätsergebnisse: Gewähren Sie die Anwendungsrolle
SNOWFLAKE.DATA_QUALITY_MONITORING_VIEWER:GRANT APPLICATION ROLE SNOWFLAKE.DATA_QUALITY_MONITORING_VIEWER TO ROLE DATAPLEX_CATALOG_READER;Datenqualitätsergebnisse werden nur für die Prüfungen importiert, die die Rolle aufrufen kann. Dazu sind
USAGEfür die Datenbank und das Schema,SELECTfür die Tabelle undUSAGEfür benutzerdefinierte Datenmesswertfunktionen erforderlich.Primär- und Fremdschlüssel: Gewähren Sie
USAGEfür die Datenbank und das Schema sowieSELECToderREFERENCESfür die Tabellen.Beispielwerte und benutzerdefinierte Anweisungen für semantische Ansichten: Gewähren Sie
REFERENCESfür die semantischen Ansichten.
Führen Sie die folgende Abfrage in Snowflake aus, um die Konto-ID zu finden, die Sie beim Konfigurieren des Connectors eingeben:
SELECT CURRENT_ORGANIZATION_NAME() || '-' || CURRENT_ACCOUNT_NAME();
Netzwerkvoraussetzungen
Damit BigQuery Data Transfer Service eine sichere Verbindung zu externen Datenbanken oder Cloud-Datenquellen von Drittanbietern mit einer privaten IP-Adresse in einem privaten Netzwerk herstellen kann, konfigurieren Sie einen Netzwerkanhang über Private Service Connect.
Wenn Sie über eine öffentliche IP-Adresse eine Verbindung zu einer lokalen Umgebung oder einer in der Cloud gehosteten Instanz herstellen, ist kein Netzwerkanhang erforderlich.
Snowflake Horizon-Connector konfigurieren
Konfigurieren Sie einen Snowflake Horizon-Connector über dieGoogle Cloud Console oder die REST API.
Console
Rufen Sie in der Google Cloud Console die Seite „Knowledge Catalog“ auf.
Klicken Sie im Navigationsmenü im Abschnitt Verwalten auf Connectors und dann auf Verbindung hinzufügen.
Wählen Sie in der Liste Connectors die Karte Snowflake Horizon aus.
Geben Sie im Abschnitt Details zur Datenquelle die Verbindungsdetails für Ihr Snowflake-Konto an:
- Wählen Sie unter Netzwerkanhang bei Bedarf einen vorhandenen Netzwerkanhang aus oder erstellen Sie einen.
- Geben Sie unter Konto-ID Ihre Snowflake-Konto-ID ohne
.snowflakecomputing.comein (z. B.myorg-myaccount). Sie können auch einen Konto-Locator wiexy12345.us-east-2.awseingeben. - Geben Sie unter Nutzername den Snowflake-Nutzer ein, den Sie für die Schlüsselpaar-Authentifizierung konfiguriert haben.
- Geben Sie für Privater Schlüssel den privaten PKCS#8-Schlüssel des Nutzers ein, z. B. den Inhalt der Datei
rsa_key.p8. - Optional: Wenn der private Schlüssel verschlüsselt ist, geben Sie unter Passphrase des privaten Schlüssels die entsprechende Passphrase ein.
- Optional: Geben Sie unter Warehouse das Warehouse ein, das die Metadatenabfragen ausführt. Wenn Sie kein Warehouse angeben, verwendet der Connector das Standard-Warehouse des Nutzers.
- Optional: Geben Sie unter Rolle die Rolle ein, die der Connector verwendet, z. B.
DATAPLEX_CATALOG_READER. Wenn Sie keine Rolle angeben, verwendet der Connector die Standardrolle des Nutzers. Klicken Sie unter Zu übertragende Snowflake-Objekte auf Durchsuchen, um die Datenbanken, Schemas oder einzelnen Objekte (Tabellen, Ansichten, semantische Ansichten, Stages, Funktionen und Prozeduren) auszuwählen, die importiert werden sollen. Wenn Sie eine Datenbank oder ein Schema auswählen, werden alle darin enthaltenen Objekte importiert. Funktionen und Prozeduren werden mit ihren Argumenttypen wie
CALC(NUMBER, VARCHAR)aufgeführt.Sie können Objekte auch manuell im Format
TYPE:ACCOUNT/DATABASE[/SCHEMA[/OBJECT]]eingeben, wobeiTYPEfürCATALOG(oderDATABASE),SCHEMA,TABLE,VIEW,SEMANTIC-MODEL,FILESET,FUNCTIONoderPROCEDUREsteht (z. B.SCHEMA:myorg-myaccount/SALES/PUBLIC). Geben SieACCOUNTim KleinbuchstabenformatORG_NAME-ACCOUNT_NAMEein, wie unter Durchsuchen gezeigt. Bei Datenbank-, Schema- und Objektnamen wird die Groß-/Kleinschreibung berücksichtigt. Namensmuster werden nicht unterstützt.
Im Abschnitt Zieleinstellungen:
- Klicken Sie auf Durchsuchen und wählen Sie eine vorhandene Knowledge Catalog-Eintragsgruppe aus, um die importierten Metadaten zu speichern, oder klicken Sie auf Neue Eintragsgruppe erstellen.
- Wählen Sie aus, ob Sie die Berechtigungen für die Eintragsgruppe jetzt oder später festlegen möchten.
Damit Nutzer die importierten Metadaten aufrufen können, müssen Sie Berechtigungen für die Eintraggruppe festlegen. Wenn Sie dem BigQuery Data Transfer Service-Dienst-Agent auf Projektebene nicht die Rolle Dataplex Entry Group Importer (
roles/dataplex.entryGroupImporter) oder die Berechtigungdataplex.entryGroups.importzugewiesen haben, weisen Sie sie dieser Eintraggruppe zu. Sie müssen die Rolle Dataplex Entry and EntryLink Owner (roles/dataplex.entryOwner) für das Projekt weiterhin zuweisen, da die Berechtigungdataplex.entryLinks.referenceauf Projektebene geprüft wird. Weitere Informationen finden Sie unter IAM-Rollen und -Berechtigungen.
Geben Sie im Abschnitt Konfigurationsname für Übertragung als Anzeigename einen Namen für den Metadatenimportjob ein.
Konfigurieren Sie im Abschnitt Zeitplanoptionen die Häufigkeit für den Metadatenimportjob. Wenn Sie On-Demand auswählen, wird der Job nur ausgeführt, wenn Sie ihn manuell auslösen.
Optional: Konfigurieren Sie im Abschnitt Benachrichtigungsoptionen eine E-Mail- oder Pub/Sub-Benachrichtigung für Jobfehler.
Optional: Konfigurieren Sie im Abschnitt Erweiterte Optionen die Verschlüsselungseinstellungen. Wenn Sie einen kundenverwalteten Verschlüsselungsschlüssel (CMEK) auswählen, werden alle temporären Daten, die vor dem Start der Knowledge Catalog-Metadatenimportjobs bereitgestellt wurden, mit dem Schlüssel verschlüsselt. Der Schlüssel verschlüsselt die Metadaten in der Knowledge Catalog-Zieleintragsgruppe nicht.
Klicken Sie auf Speichern.
REST
Verwenden Sie die Methode projects.locations.transferConfigs.create. Konfigurieren Sie in der Ressource TransferConfig die folgenden Felder:
- Setzen Sie das Feld
dataSourceIdauf"snowflake_horizon". - Geben Sie im Feld
metadataDestinationden Ressourcenpfad der Ziel-Knowledge Catalog-Eintragsgruppe im FelddataplexConfiguration.entryGroupein:projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID. - Legen Sie im Feld
paramsdie folgenden Parameter fest:connector.accountIdentifier(erforderlich): Ihre Snowflake-Konto-ID ohne.snowflakecomputing.com(z. B.myorg-myaccount) oder ein Konto-Locator (z. B.xy12345.us-east-2.aws).connector.authentication.username(erforderlich): der Snowflake-Nutzer.connector.authentication.privateKey(erforderlich): Der private Schlüssel des Nutzers im PKCS#8-PEM-Format.connector.authentication.privateKeyPassphrase(optional): die Passphrase des privaten Schlüssels, wenn der Schlüssel verschlüsselt ist.connector.warehouse(optional): das Warehouse, in dem die Metadatenabfragen ausgeführt werden. Wenn Sie diesen Parameter weglassen, verwendet der Connector das Standard-Warehouse des Nutzers.connector.role(optional): die Rolle, die der Connector verwendet. Wenn Sie diesen Parameter weglassen, verwendet der Connector die Standardrolle des Nutzers.connector.networkAttachment(optional): der Netzwerkanhang im Formatprojects/PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT_ID.assets(erforderlich): die Liste der Snowflake-Objekte, die im FormatTYPE:ACCOUNT/DATABASE[/SCHEMA[/OBJECT]]importiert werden sollen, z. B.["SCHEMA:myorg-myaccount/SALES/PUBLIC"].
- Optional: Wenn Sie den privaten Schlüssel nicht in der Übertragungskonfiguration speichern möchten, speichern Sie ihn in Secret Manager:
- Legen Sie
connector.authentication.privateKey(undconnector.authentication.privateKeyPassphrase, falls Sie einen verwenden) auf den Ressourcennamen der Secret-Version im Formatprojects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/VERSION_IDfest und fügen Sie diese Parameternamen dem FeldparamConfig.secretManagerManagedParamshinzu. - Weisen Sie dem Dienst-Agent von BigQuery Data Transfer Service des Projekts, das die Übertragungskonfiguration (
service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.) enthält, die Rolle Secret Manager Secret Accessor (roles/secretmanager.secretAccessor) für jedes Secret zu. Die Secrets können sich in einem anderen Projekt befinden. Wenn der Dienst-Agent ein Secret nicht lesen kann, schlägt die Ausführung fehl, bevor sie mit einem Fehler wieFailed to retrieve secret ... Permission 'secretmanager.versions.access' deniedbeginnt. Der BigQuery Data Transfer Service liest die Secrets zu Beginn jeder Ausführung. Wenn Sie alsoVERSION_IDauflatestsetzen, wird ab der nächsten Ausführung ein rotierter Schlüssel verwendet.
- Legen Sie
Das folgende Beispiel zeigt einen TransferConfig-Anfragetext:
{
"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"
}
}
}
Der Job wird automatisch nach Ihrem Zeitplan ausgeführt oder Sie können ihn manuell auslösen.
Snowflake Horizon-Connector-Job überwachen
Snowflake Horizon-Connector-Job mit derGoogle Cloud Console oder der REST API überwachen.
Console
- Klicken Sie in der Google Cloud Console auf der Seite Connectors auf den Anzeigenamen des Snowflake Horizon-Übertragungsjobs.
- Klicken Sie auf dem Tab Ausführungsverlauf auf Details ansehen, um die Logs aufzurufen.
- Klicken Sie auf den Tab Details und dann auf den Link für die Eintraggruppe Metadatenziel, um die erstellten Einträge aufzurufen.
REST
- Verwenden Sie die Methode
projects.locations.transferConfigs.runs.list, um die Ausführungen einer Übertragungskonfiguration aufzulisten und ihren Status aufzurufen. Bei jeder Ausführung werden die erfassten Metadaten mit einem Metadatenimportjob, dessen ID
dts-run-RUN_IDlautet, in Knowledge Catalog importiert. Wenn Sie das Ergebnis des Imports sehen möchten, z. B. die Anzahl der erstellten Einträge, filtern Sie die Logs des Jobs in Logging mit der folgenden Abfrage:logName="projects/PROJECT_ID/logs/dataplex.googleapis.com%2Fmetadata_job" AND resource.labels.metadata_job_id="dts-run-RUN_ID"Wenn Sie das Ergebnis eines Imports ohne Logging aufrufen möchten, rufen Sie die Methode
projects.locations.metadataJobs.getfürprojects/PROJECT_ID/locations/LOCATION/metadataJobs/dts-run-RUN_IDauf. Im FeldimportResultwird die Anzahl der erstellten, aktualisierten, unveränderten und gelöschten Einträge und Eintragslinks angezeigt.
Snowflake Horizon-Metadaten suchen und ansehen
Rufen Sie in der Google Cloud Console die Seite Suchen im Knowledge Catalog auf.
Filtern Sie im Bereich Filter mithilfe der Abschnitte Projekt, Systeme und Typ-Aliasse nach Snowflake Horizon-Assets. Wenn Sie nach allen Snowflake Horizon-Metadaten filtern möchten, wählen Sie im Abschnitt Systeme die Option Importierter Kontext und dann im Unterabschnitt Verwaltete Connectors die Option Snowflake Horizon aus.
Geben Sie im Suchfeld einen Suchbegriff oder eine Suchanfrage in natürlicher Sprache ein. Wenn Sie beispielsweise alle Snowflake Horizon-Assets über die Keyword-Suche aufrufen möchten, geben Sie
system=SNOWFLAKEein.Weitere Informationen zur Suche nach Ressourcen finden Sie unter Ressourcen in Knowledge Catalog suchen. Weitere Informationen zu den Ausdrücken, die Sie im Suchfeld verwenden können, finden Sie unter Suchsyntax für Knowledge Catalog.
Sie können auch die LookupContext API verwenden, um LLM-Kontext für bestimmte Snowflake Horizon-Ressourcen abzurufen. Weitere Informationen finden Sie unter Kontext für Daten-Assets abrufen.