Desglosa los silos de datos y evita cambiar de herramienta con un conector de Knowledge Catalog (antes Dataplex Universal Catalog) para importar metadatos de Snowflake Horizon directamente a Google Cloud.
Este conector admite instancias de Snowflake Horizon alojadas en Google Cloud, Microsoft Azure o Amazon Web Services (AWS).
En la siguiente tabla, se enumeran los metadatos que captura el conector de Snowflake Horizon:
| Categoría | Metadatos capturados |
|---|---|
| Técnico |
|
| Operacional |
|
| Empresa |
|
| Semántica |
|
Limitaciones
El conector de Snowflake Horizon tiene las siguientes limitaciones:
- No se admite el linaje.
- El conector importa los metadatos de tus tablas de Iceberg, pero no los vincula automáticamente a las tablas físicas subyacentes en tu catálogo de Iceberg REST (IRC).
- Las etiquetas, los resultados de la calidad de los datos y de la generación de perfiles, los resultados de la clasificación,
las uniones del historial de consultas y las estadísticas de uso que leen
ACCESS_HISTORY(usuarios frecuentes y tablas unidas con frecuencia) requieren Snowflake Enterprise Edition o una versión posterior.
Antes de comenzar
Antes de importar metadatos de Snowflake Horizon, completa las siguientes tareas:
- Otorga los roles y permisos necesarios.
- Habilita la API de Dataplex y la API del Servicio de transferencia de datos de BigQuery.
- Cumple con los requisitos previos de Snowflake Horizon.
- Cumple con los requisitos previos de redes.
Permisos y funciones de IAM
Para crear y administrar un trabajo de conector de Knowledge Catalog, necesitas roles de Identity and Access Management (IAM) que otorguen permisos para Knowledge Catalog y el Servicio de transferencia de datos de BigQuery.
Para obtener los permisos que necesitas para configurar un conector de Snowflake Horizon, pídele a tu administrador que te otorgue los siguientes roles de IAM:
- Para crear y administrar grupos de entradas:
Administrador de Dataplex Catalog
(
roles/dataplex.catalogAdmin), Editor de Dataplex Catalog (roles/dataplex.catalogEditor) o Propietario del grupo de entradas de Dataplex (roles/dataplex.entryGroupOwner) en el proyecto. - Para ver los metadatos de Snowflake Horizon:
Visualizador del catálogo de Dataplex
(
roles/dataplex.catalogViewer) en el proyecto. - Para crear y administrar trabajos de transferencia del Servicio de transferencia de datos de BigQuery:
Administrador de BigQuery
(
roles/bigquery.admin) en el proyecto. - Para ver los registros en Cloud Logging:
Visor de registros
(
roles/logging.viewer) en el proyecto.
También debes otorgar al agente de servicio del Servicio de transferencia de datos de BigQuery
(service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com)
los siguientes roles:
- Importador de grupos de entradas de Dataplex
(
roles/dataplex.entryGroupImporter), en el grupo de entradas de destino o en el proyecto que lo contiene. Este rol permite que el agente de servicio importe metadatos al grupo de entrada (dataplex.entryGroups.import). Propietario de entradas y vínculo de entrada de Dataplex (
roles/dataplex.entryOwner) en el proyecto que contiene el grupo de entradas de destino. Este rol permite que el agente de servicio importe metadatos de uso, empresariales y de calidad de los datos, y vínculos de entrada. Incluye los siguientes permisos:dataplex.entryGroups.useDataProfileAspectdataplex.entryGroups.useDataQualityScorecardAspectdataplex.entryGroups.useManagedConnectorTypesdataplex.entryGroups.useReferenceEntryLinkdataplex.entryGroups.useSchemaAspectdataplex.entryGroups.useSchemaJoinAspectdataplex.entryGroups.useSchemaJoinEntryLinkdataplex.entryGroups.useUsageAspectdataplex.entryLinks.reference
Otorga este rol en el proyecto, no solo en el grupo de entradas, ya que la importación verifica el permiso
dataplex.entryLinks.referenceen el proyecto. Si el agente de servicio no tiene este permiso en el proyecto, la ejecución de la transferencia falla con un error comoPermission 'dataplex.entryLinks.reference' deniedy no se importan metadatos.
En lugar de otorgar ambos roles, puedes otorgar el rol de
propietario del grupo de entradas de Dataplex
(roles/dataplex.entryGroupOwner) en el proyecto que contiene el
grupo de entradas de destino. Este rol incluye los permisos de ambos roles y
también permite que el agente de servicio cree, borre y administre el acceso a todos los grupos de entradas
del proyecto.
Si quieres obtener más información para otorgar roles, consulta Administra el acceso.
Habilita las APIs
Habilita la API de Dataplex y la API del Servicio de transferencia de datos de BigQuery.
Requisitos previos de Snowflake Horizon
Si también quieres ejecutar consultas en SQL o trabajos de Spark en el catálogo remoto de Snowflake, consulta Configura una conexión multinube para el catálogo de Snowflake Horizon.
El conector accede a Snowflake como un usuario de Snowflake
con autenticación de par de claves y lee los metadatos del
esquema SNOWFLAKE.ACCOUNT_USAGE. No se admite la autenticación con contraseña. Un
administrador de Snowflake, como un usuario con el rol ACCOUNTADMIN,
debe completar los siguientes pasos:
Crea un rol para el conector y otórgale acceso a
ACCOUNT_USAGEy a un almacén que ejecute las consultas de metadatos: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;Reemplaza
WAREHOUSE_NAMEpor el nombre del almacén de Snowflake que ejecuta las consultas de metadatos.Crea un usuario de servicio para el conector o usa un usuario existente y otórgale el rol:
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;Reemplaza
USERNAMEpor el nombre del usuario de Snowflake para el conector.Genera un par de clave RSA con la clave privada en 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.pubPara encriptar la clave privada, reemplaza
-nocryptpor-v2 aes-256-cbcy proporciona la frase de contraseña cuando configures el conector. Mantén seguro el archivo de clave privada (rsa_key.p8), ya que lo proporcionas cuando configuras el conector.Asigna la clave pública al usuario de Snowflake:
ALTER USER USERNAME SET RSA_PUBLIC_KEY='PUBLIC_KEY';Reemplaza
PUBLIC_KEYpor el contenido dersa_key.pub, sin incluir las líneas-----BEGIN PUBLIC KEY-----y-----END PUBLIC KEY-----.Opcional: Para importar metadatos adicionales, otorga al rol del conector los siguientes privilegios:
Perfiles de datos y resultados de calidad de los datos: Otorga el rol de aplicación
SNOWFLAKE.DATA_QUALITY_MONITORING_VIEWER:GRANT APPLICATION ROLE SNOWFLAKE.DATA_QUALITY_MONITORING_VIEWER TO ROLE DATAPLEX_CATALOG_READER;Los resultados de la calidad de los datos se importan solo para las verificaciones que el rol puede ver, lo que requiere
USAGEen la base de datos y el esquema,SELECTen la tabla yUSAGEen las funciones de métricas de datos personalizadas.Claves primarias y claves externas: Otorga
USAGEen la base de datos y el esquema, ySELECToREFERENCESen las tablas.Valores de muestra e instrucciones personalizadas de las vistas semánticas: Otorga
REFERENCESen las vistas semánticas.
Para encontrar el identificador de la cuenta que ingresas cuando configuras el conector, ejecuta la siguiente consulta en Snowflake:
SELECT CURRENT_ORGANIZATION_NAME() || '-' || CURRENT_ACCOUNT_NAME();
Requisitos previos de Herramientas de redes
Para permitir que el Servicio de transferencia de datos de BigQuery se conecte de forma segura a bases de datos externas o fuentes de datos en la nube de terceros con una dirección IP privada dentro de una red privada, configura un adjunto de red a través de Private Service Connect.
Si te conectas a un entorno local o a una instancia alojada en la nube con una dirección IP pública, no se requiere un adjunto de red.
Configura un conector de Snowflake Horizon
Configura un conector de Snowflake Horizon con la consola deGoogle Cloud o la API de REST.
Console
En la consola de Google Cloud , ve a la página Knowledge Catalog.
En el menú de navegación, en la sección Administrar, haz clic en Conectores y, luego, en Agregar conexión.
En la lista Conectores, selecciona la tarjeta Snowflake Horizon.
En la sección Detalles de la fuente de datos, proporciona los detalles de conexión de tu cuenta de Snowflake:
- En Adjunto de red, selecciona un adjunto de red existente si es necesario o crea uno.
- En Identificador de cuenta, ingresa el identificador de tu cuenta de Snowflake sin
.snowflakecomputing.com(por ejemplo,myorg-myaccount). También puedes ingresar un localizador de cuenta, comoxy12345.us-east-2.aws. - En Nombre de usuario, ingresa el usuario de Snowflake que configuraste para la autenticación de par de claves.
- En Clave privada, ingresa la clave privada PKCS#8 del usuario, como
el contenido del archivo
rsa_key.p8. - Opcional: En Frase de contraseña de clave privada, si la clave privada está encriptada, ingresa su frase de contraseña.
- Opcional: En Almacén, ingresa el almacén que ejecuta las consultas de metadatos. Si no especificas un almacén, el conector usa el almacén predeterminado del usuario.
- Opcional: En Rol, ingresa el rol que usa el conector, como
DATAPLEX_CATALOG_READER. Si no especificas un rol, el conector usa el rol predeterminado del usuario. En Objetos de Snowflake que se transferirán, haz clic en Explorar para seleccionar las bases de datos, los esquemas o los objetos individuales (tablas, vistas, vistas semánticas, etapas, funciones y procedimientos) que se importarán. Si seleccionas una base de datos o un esquema, se importarán todos los objetos que contenga. Las funciones y los procedimientos se enumeran con sus tipos de argumentos, como
CALC(NUMBER, VARCHAR).También puedes ingresar objetos de forma manual en el formato
TYPE:ACCOUNT/DATABASE[/SCHEMA[/OBJECT]], en el queTYPEesCATALOG(oDATABASE),SCHEMA,TABLE,VIEW,SEMANTIC-MODEL,FILESET,FUNCTIONoPROCEDURE(por ejemplo,SCHEMA:myorg-myaccount/SALES/PUBLIC). IngresaACCOUNTen el formatoORG_NAME-ACCOUNT_NAMEen minúsculas que se muestra en Explorar. Los nombres de la base de datos, el esquema y el objeto distinguen mayúsculas de minúsculas. No se admiten patrones de nombres.
En la sección Configuración de destino, haz lo siguiente:
- Haz clic en Explorar y selecciona un grupo de entradas de Knowledge Catalog existente para almacenar los metadatos importados, o haz clic en Crear un grupo de entradas nuevo.
- Selecciona si deseas establecer permisos en el grupo de entradas ahora o más adelante.
Para permitir que los usuarios vean los metadatos importados, establece permisos en el
grupo de entradas. Si no otorgaste el rol de
importador de grupos de entradas de Dataplex
(
roles/dataplex.entryGroupImporter) o el permisodataplex.entryGroups.importal agente de servicio del Servicio de transferencia de datos de BigQuery a nivel del proyecto, otórgalo en este grupo de entradas. Aún debes otorgar el rol de propietario de entradas y vínculo de entrada de Dataplex (roles/dataplex.entryOwner) en el proyecto, ya que el permisodataplex.entryLinks.referencese verifica a nivel del proyecto. Para obtener más información, consulta Roles y permisos de IAM.
En la sección Nombre de la configuración de transferencia, en Nombre visible, ingresa un nombre para el trabajo de importación de metadatos.
En la sección Opciones de programación, configura la frecuencia del trabajo de importación de metadatos. Si seleccionas A pedido, el trabajo se ejecuta solo cuando lo activas de forma manual.
Opcional: En la sección Opciones de notificación, configura una notificación por correo electrónico o Pub/Sub para los errores de los trabajos.
Opcional: En la sección Opciones avanzadas, configura los parámetros de encriptación. Si seleccionas una clave de encriptación administrada por el cliente (CMEK), esta encriptará los datos transitorios que se almacenen en etapa de pruebas antes de iniciar los trabajos de importación de metadatos de Knowledge Catalog. La clave no encripta los metadatos en el grupo de entradas de destino de Knowledge Catalog.
Haz clic en Guardar.
REST
Usa el
método
projects.locations.transferConfigs.create. En el recurso
TransferConfig,
configura los siguientes campos:
- Configura el campo
dataSourceIdcomo"snowflake_horizon". - En el campo
metadataDestination, completa el campodataplexConfiguration.entryGroupcon la ruta de acceso del recurso del grupo de entradas de Knowledge Catalog de destino:projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID. - En el campo
params, configura los siguientes parámetros:connector.accountIdentifier(obligatorio): Es el identificador de tu cuenta de Snowflake sin.snowflakecomputing.com(por ejemplo,myorg-myaccount) o un localizador de cuenta (comoxy12345.us-east-2.aws).connector.authentication.username(obligatorio): el usuario de Snowflake.connector.authentication.privateKey(obligatorio): Es la clave privada del usuario en formato PEM PKCS#8.connector.authentication.privateKeyPassphrase(opcional): Es la frase de contraseña de la clave privada, si la clave está encriptada.connector.warehouse(opcional): Es el almacén que ejecuta las consultas de metadatos. Si omites este parámetro, el conector usa el almacén predeterminado del usuario.connector.role(opcional): Es el rol que usa el conector. Si omites este parámetro, el conector usará el rol predeterminado del usuario.connector.networkAttachment(opcional): Es el adjunto de red en el formatoprojects/PROJECT_ID/regions/REGION/networkAttachments/NETWORK_ATTACHMENT_ID.assets(obligatorio): Es la lista de objetos de Snowflake que se importarán en el formatoTYPE:ACCOUNT/DATABASE[/SCHEMA[/OBJECT]], como["SCHEMA:myorg-myaccount/SALES/PUBLIC"].
- Opcional: Para mantener la clave privada fuera de la configuración de transferencia,
almacénala en Secret Manager:
- Establece
connector.authentication.privateKey(yconnector.authentication.privateKeyPassphrase, si usas uno) en el nombre del recurso de la versión del Secret con el formatoprojects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/VERSION_IDy agrega esos nombres de parámetros al campoparamConfig.secretManagerManagedParams. - Otorga el rol de
descriptor de acceso a secretos de Secret Manager
(
roles/secretmanager.secretAccessor) en cada secreto al agente de servicio del Servicio de transferencia de datos de BigQuery del proyecto que contiene la configuración de transferencia (service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com). Los secretos pueden estar en un proyecto diferente. Si el agente de servicio no puede leer un secreto, la ejecución falla antes de que comience con un error comoFailed to retrieve secret ... Permission 'secretmanager.versions.access' denied. El Servicio de transferencia de datos de BigQuery lee los secrets al comienzo de cada ejecución, por lo que, si configurasVERSION_IDcomolatest, se usará una clave rotada a partir de la siguiente ejecución.
- Establece
En el siguiente ejemplo, se muestra un cuerpo de solicitud 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"
}
}
}
El trabajo se ejecuta automáticamente según tu programa, o puedes activarlo de forma manual.
Supervisa un trabajo del conector de Snowflake Horizon
Supervisa un trabajo del conector de Snowflake Horizon con la consola deGoogle Cloud o la API de REST.
Console
- En la consola de Google Cloud , en la página Conectores, haz clic en el nombre visible del trabajo de transferencia de Snowflake Horizon.
- En la pestaña Historial de ejecuciones, haz clic en Ver detalles para ver los registros.
- Para ver las entradas creadas, haz clic en la pestaña Detalles y, luego, en el vínculo del grupo de entradas Destino de metadatos.
REST
- Para enumerar las ejecuciones de una configuración de transferencia y ver su estado, usa
el método
projects.locations.transferConfigs.runs.list. Cada ejecución importa los metadatos recopilados a Knowledge Catalog con un trabajo de importación de metadatos cuyo ID es
dts-run-RUN_ID. Para ver el resultado de la importación, como la cantidad de entradas creadas, filtra los registros del trabajo en Logging con la siguiente consulta:logName="projects/PROJECT_ID/logs/dataplex.googleapis.com%2Fmetadata_job" AND resource.labels.metadata_job_id="dts-run-RUN_ID"Para ver el resultado de una importación sin usar Logging, llama al método
projects.locations.metadataJobs.getenprojects/PROJECT_ID/locations/LOCATION/metadataJobs/dts-run-RUN_ID. En el campoimportResult, se muestra la cantidad de entradas y vínculos de entrada creados, actualizados, sin cambios y borrados.
Busca y visualiza metadatos de Snowflake Horizon
En la consola de Google Cloud , ve a la página Búsqueda de Knowledge Catalog.
En el panel Filtros, filtra los recursos de Snowflake Horizon con las secciones Proyecto, Sistemas y Alias de tipo. Para filtrar todos los metadatos de Snowflake Horizon, en la sección Sistemas, selecciona Contexto importado y, luego, en el apartado Conectores administrados, selecciona Snowflake Horizon.
En el campo de búsqueda, ingresa una palabra clave o una consulta de búsqueda en lenguaje natural. Por ejemplo, para ver todos los recursos de Snowflake Horizon a través de la búsqueda por palabras clave, ingresa
system=SNOWFLAKE.Para obtener más información sobre la búsqueda de recursos, consulta Busca recursos en Knowledge Catalog. Para obtener más información sobre las expresiones que puedes usar en el campo de búsqueda, consulta Sintaxis de búsqueda para Knowledge Catalog.
También puedes usar la API de
LookupContext
para recuperar el contexto de LLM de recursos específicos de Snowflake
Horizon. Para obtener más información, consulta Recupera el contexto de los recursos de
datos.
¿Qué sigue?
- Obtén más información para administrar trabajos de conector.