Programa una transferencia de Snowflake

El conector de Snowflake que proporciona el Servicio de transferencia de datos de BigQuery te permite programar y administrar trabajos de transferencia automatizados para migrar datos de Snowflake a BigQuery con listas de IPs públicas permitidas.

Descripción general

El conector Snowflake involucra agentes de migración en Google Kubernetes Engine y activa una operación de carga desde Snowflake a un área de etapa de pruebas dentro del mismo proveedor de servicios en la nube en el que se aloja Snowflake.

  • En el caso de las cuentas de Snowflake alojadas en AWS, los datos primero se almacenan de forma intermedia en tu bucket de Amazon S3 y, luego, se transfieren a BigQuery con el Servicio de transferencia de datos de BigQuery.
  • En el caso de las cuentas de Snowflake alojadas enGoogle Cloud, los datos primero se almacenan en etapa intermedia en tu bucket de Cloud Storage y, luego, se transfieren a BigQuery con el Servicio de transferencia de datos de BigQuery.
  • En el caso de las cuentas de Snowflake alojadas en Azure, los datos primero se almacenan en etapa de pruebas en tu contenedor de Azure Blob Storage y, luego, se transfieren a BigQuery con el Servicio de transferencia de datos de BigQuery.

Limitaciones

Las transferencias de datos realizadas con el conector de Snowflake están sujetas a las siguientes limitaciones:

  • El conector de Snowflake solo admite transferencias desde tablas dentro de una sola base de datos y esquema de Snowflake. Para transferir datos desde tablas con varias bases de datos o esquemas de Snowflake, puedes configurar cada trabajo de transferencia por separado.
  • La velocidad de carga de datos desde Snowflake a tu bucket de Amazon S3, contenedor de Azure Blob Storage o bucket de Cloud Storage está limitada por el almacén de Snowflake que elegiste para esta transferencia.
  • BigQuery escribe datos de Snowflake en Cloud Storage como archivos Parquet. Los archivos Parquet no admiten los tipos de datos TIMESTAMP_TZ y TIMESTAMP_LTZ. Si tus datos contienen estos tipos, puedes exportarlos a Amazon S3 como archivos CSV y, luego, importar los archivos CSV a BigQuery. Para obtener más información, consulta Descripción general de las transferencias de Amazon S3.

Antes de comenzar

Antes de configurar una transferencia de Snowflake, debes seguir todos los pasos que se indican en esta sección. A continuación, se incluye una lista de todos los pasos necesarios.

  1. Prepara tu proyecto de Google Cloud
  2. Roles de BigQuery requeridos
  3. Prepara tu bucket de etapa de pruebas
  4. Crea un usuario de Snowflake con los permisos necesarios
  5. Agrega políticas de red
  6. Opcional: Detección y asignación de esquemas
  7. Evalúa tu Snowflake para detectar tipos de datos no admitidos
  8. Opcional: Habilita las transferencias incrementales
  9. Opcional: Habilita la conectividad privada
  10. Recopila información de transferencia
  11. Si planeas especificar una clave de encriptación administrada por el cliente (CMEK), asegúrate de que tu cuenta de servicio tenga permisos para encriptar y desencriptar y de tener el Cloud KMS. Es el ID de recurso de la clave necesario para usar CMEK. Para obtener información sobre cómo funcionan las CMEK con las transferencias, consulta Especifica la clave de encriptación con transferencias.

Prepara tu proyecto de Google Cloud

Crea y configura tu proyecto Google Cloud para una transferencia de Snowflake con los siguientes pasos:

  1. Crea un Google Cloud proyecto o selecciona uno existente.

  2. Verifica si completaste todas las acciones necesarias para habilitar el Servicio de transferencia de datos de BigQuery.

  3. Crea un conjunto de datos de BigQuery para almacenar tus datos. No es necesario crear ninguna tabla.

Roles de BigQuery requeridos

Para obtener los permisos que necesitas para crear una transferencia de datos de Servicio de transferencia de datos de BigQuery, pídele a tu administrador que te otorgue el rol de IAM de administrador de BigQuery (roles/bigquery.admin) en tu proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para crear una transferencia de datos del Servicio de transferencia de datos de BigQuery. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para crear una transferencia de datos del Servicio de transferencia de datos de BigQuery:

  • Permisos del Servicio de transferencia de datos de BigQuery:
    • bigquery.transfers.update
    • bigquery.transfers.get
  • Permisos de BigQuery:
    • bigquery.datasets.get
    • bigquery.datasets.getIamPolicy
    • bigquery.datasets.update
    • bigquery.datasets.setIamPolicy
    • bigquery.jobs.create

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Para obtener más información, consulta Cómo otorgar acceso a bigquery.admin.

Prepara el bucket de etapa de pruebas

Para completar una transferencia de datos de Snowflake, debes crear un bucket de etapa de pruebas y, luego, configurarlo para permitir el acceso de escritura desde Snowflake.

Selecciona una de las siguientes opciones:

AWS

Bucket de staging para la cuenta de Snowflake alojada en AWS

En el caso de la cuenta de Snowflake alojada en AWS, crea un bucket de Amazon S3 para organizar los datos de Snowflake antes de que se carguen en BigQuery.

  1. Crea un bucket de Amazon S3.

  2. Crea y configura un objeto de integración de almacenamiento de Snowflake para permitir que Snowflake escriba datos en el bucket de Amazon S3 como una etapa externa.

Para permitir el acceso de lectura en tu bucket de Amazon S3, también debes hacer lo siguiente:

  1. Crea un usuario de IAM de Amazon dedicado y otórgale la política AmazonS3ReadOnlyAccess.

  2. Crea un par de claves de acceso de Amazon para el usuario de IAM.

Azure

Contenedor de Azure Blob Storage de almacenamiento provisional para la cuenta de Snowflake hospedada en Azure

Para las cuentas de Snowflake alojadas en Azure, crea un contenedor de Azure Blob Storage para almacenar los datos de Snowflake antes de que se carguen en BigQuery.

  1. Crea una cuenta de almacenamiento de Azure y un contenedor de almacenamiento dentro de ella.
  2. Crea y configura un objeto de integración de almacenamiento de Snowflake para permitir que Snowflake escriba datos en el contenedor de almacenamiento de Azure como una etapa externa. Ten en cuenta que puedes omitir el "Paso 3: Crear una etapa externa", ya que no la usaremos.

Para permitir el acceso de lectura en tu contenedor de Azure, genera un token SAS para él.

Google Cloud

Bucket de transferencia para la cuenta de Snowflake alojada en Google Cloud

En el caso de las cuentas de Snowflake alojadas en Google Cloud, crea un bucket de Cloud Storage para almacenar los datos de Snowflake en etapa intermedia antes de que se carguen en BigQuery.

  1. Crea buckets de Cloud Storage.
  2. Crea y configura un objeto de integración de almacenamiento de Snowflake para permitir que Snowflake escriba datos en el bucket de Cloud Storage como una etapa externa.
  3. Para permitir el acceso al bucket de etapa de pruebas, otorga al agente de servicio de DTS el rol de roles/storage.objectViewer con el siguiente comando:

    gcloud storage buckets add-iam-policy-binding gs://STAGING_BUCKET_NAME \
      --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com \
      --role=roles/storage.objectViewer

Crea un usuario de Snowflake con los permisos necesarios

Durante una transferencia de Snowflake, el conector de Snowflake se conecta a tu cuenta de Snowflake a través de una conexión JDBC. Debes crear un nuevo usuario de Snowflake con un rol personalizado que solo tenga los privilegios necesarios para realizar la transferencia de datos:

  // Create and configure new role, MIGRATION_ROLE
  GRANT USAGE
    ON WAREHOUSE WAREHOUSE_NAME
    TO ROLE MIGRATION_ROLE;

  GRANT USAGE
    ON DATABASE DATABASE_NAME
    TO ROLE MIGRATION_ROLE;

  GRANT USAGE
    ON SCHEMA DATABASE_NAME.SCHEMA_NAME
    TO ROLE MIGRATION_ROLE;

  // You can modify this to give select permissions for all tables in a schema
  GRANT SELECT
    ON TABLE DATABASE_NAME.SCHEMA_NAME.TABLE_NAME
    TO ROLE MIGRATION_ROLE;

  GRANT USAGE
    ON STORAGE_INTEGRATION_OBJECT_NAME
    TO ROLE MIGRATION_ROLE;

Reemplaza lo siguiente:

  • MIGRATION_ROLE: El nombre del rol personalizado que creas
  • WAREHOUSE_NAME: El nombre de tu almacén de datos
  • DATABASE_NAME: el nombre de tu base de datos de Snowflake
  • SCHEMA_NAME: El nombre de tu esquema de Snowflake
  • TABLE_NAME: Es el nombre de la instancia de Snowflake incluida en esta transferencia de datos.
  • STORAGE_INTEGRATION_OBJECT_NAME: Es el nombre de tu objeto de integración de almacenamiento de Snowflake.

Genera un par de claves para la autenticación

Debido a la obsolescencia de los inicios de sesión con contraseña de un solo factor por parte de Snowflake, te recomendamos que uses un par de claves para la autenticación.

Puedes configurar un par de claves generando un par de clave RSA encriptado o sin encriptar y, luego, asignando la clave pública a un usuario de Snowflake. Para obtener más información, consulta Configura la autenticación con pares de claves.

Agrega políticas de red

Para la conectividad pública, la cuenta de Snowflake permite la conexión pública con credenciales de la base de datos de forma predeterminada. Sin embargo, es posible que hayas configurado reglas o políticas de red que podrían impedir que el conector de Snowflake se conecte a tu cuenta. En este caso, debes agregar las direcciones IP necesarias a tu lista de entidades permitidas. Para obtener más información, consulta Configura políticas de red para transferencias de Snowflake.

Detección y asignación de esquemas

Para definir tu esquema, puedes usar el Servicio de transferencia de datos de BigQuery para detectar automáticamente el esquema y la asignación de tipos de datos cuando transfieras datos de Snowflake a BigQuery. Como alternativa, puedes usar el motor de traducción para definir tu esquema y los tipos de datos de forma manual.

Para obtener más información, consulta Detección y asignación de esquemas para Snowflake.

Habilita las transferencias incrementales

Para configurar una transferencia de datos incremental de Snowflake, consulta Configura transferencias incrementales para Snowflake.

Habilita la conectividad privada

Si deseas crear una transferencia de datos privada de Snowflake, debes configurar tu red para la conectividad privada.

Recopila información de transferencia

Recopila la información que necesitas para configurar la migración con el Servicio de transferencia de datos de BigQuery:

Configura una transferencia de Snowflake

Selecciona una de las siguientes opciones:

Console

  1. Ve a la página Transferencia de datos en la Google Cloud consola.

    Ir a Transferencias de datos

  2. Haz clic en Crear transferencia.

  3. En la sección Tipo de fuente, selecciona Migración de Snowflake en la lista Fuente.

  4. En la sección Transfer config name (Nombre de la configuración de transferencia), ingresa un nombre para la transferencia, como My migration, en el campo Display name (Nombre visible). El nombre visible puede ser cualquier valor que te permita identificar la transferencia si necesitas modificarla más adelante.

  5. En la sección Destination settings (Configuración de destino), elige el conjunto de datos que creaste de la lista Dataset (Conjunto de datos).

  6. En la sección Credenciales de Snowflake, haz lo siguiente:

    1. En Account Identifier, ingresa un identificador único para tu cuenta de Snowflake, que es una combinación del nombre de tu organización y el nombre de la cuenta. El identificador es el prefijo de la URL de la cuenta de Snowflake y no la URL completa. Por ejemplo, ACCOUNT_IDENTIFIER.snowflakecomputing.com
    2. En Nombre de usuario, ingresa el nombre de usuario de Snowflake cuyas credenciales y autorización se usan para acceder a tu base de datos y transferir las tablas de Snowflake. Te recomendamos que uses el usuario que creaste para esta transferencia.
    3. En Authentication Mechanism, selecciona un método de autenticación de usuario de Snowflake:

      CONTRASEÑA

      • En Contraseña, ingresa la contraseña del usuario de Snowflake.

      KEY_PAIR

    • En Almacén, ingresa un almacén que se use para la ejecución de esta transferencia de datos.
    • En Base de datos de Snowflake, ingresa el nombre de la base de datos de Snowflake que contiene las tablas incluidas en esta transferencia de datos.
    • En Esquema de Snowflake, ingresa el nombre del esquema de Snowflake que contiene las tablas incluidas en esta transferencia de datos.
  7. En la sección Configuración de almacenamiento, haz lo siguiente:

    1. En Nombre del objeto de integración de almacenamiento, ingresa el nombre del objeto de integración de almacenamiento de Snowflake.
    2. Opcional: En Tamaño máximo del archivo, especifica el tamaño máximo de cada archivo descargado de Snowflake a la ubicación de transferencia (en MB).
    3. En Cloud Provider, selecciona AWS, AZURE o GCP según el proveedor de servicios en la nube que aloje tu cuenta de Snowflake.

      AWS

      Azure

      Google Cloud

  8. En la sección Cuenta de servicio, haz lo siguiente:

    1. En Cuenta de servicio, ingresa una cuenta de servicio para usar con esta transferencia de datos. La cuenta de servicio debe pertenecer al mismo proyecto deGoogle Cloud en el que se crean la configuración de transferencia y el conjunto de datos de destino. La cuenta de servicio debe tener los permisos necesarios storage.objects.list y storage.objects.get.
  9. En la sección Configuración del esquema, haz lo siguiente:

    1. En Ingestion type, selecciona Full o Incremental. Para obtener más información, consulta Comportamiento de la transferencia de datos.
    2. En Patrones de nombre de la tabla, especifica una tabla para transferir ingresando un nombre o un patrón que coincida con el nombre de la tabla en el esquema. Puedes usar expresiones regulares para especificar el patrón, por ejemplo, table1_regex;table2_regex. El patrón debe seguir la sintaxis de la expresión regular de Java. Por ejemplo:
      • lineitem;ordertb coincide con las tablas llamadas lineitem y ordertb.
      • .* coincide con todas las tablas.
    3. Opcional: En Use BigQuery Translation Engine Output, selecciona este campo si deseas especificar una ruta de salida de traducción personalizada.
    4. Opcional: En Ruta de acceso de GCS del resultado de la traducción, especifica una ruta de acceso a la carpeta de Cloud Storage que contiene los archivos de asignación de esquemas del motor de traducción. Puedes dejar este campo vacío para que el conector de Snowflake detecte automáticamente tu esquema.
      • La ruta de acceso debe seguir el formato translation_target_base_uri/metadata/config/db/schema/ y debe terminar con /.
    5. Opcional: En Ruta de acceso al archivo de esquema personalizado, especifica la ruta de Cloud Storage a un archivo de esquema personalizado.
    6. Opcional: En Map zero scale Snowflake NUMBER to BigQuery INT64, selecciona este campo si deseas que los tipos NUMBER(p, 0) de Snowflake se asignen a INT64 de BigQuery.
  10. En la sección Conectividad de red, haz lo siguiente:

    1. En Use Private Network, si creas una transferencia de datos privada, selecciona True.
    2. En Adjunto de servicio de PSC, si creas una conexión privada, ingresa el URI del adjunto de servicio. Para obtener más información, consulta Crea una configuración de transferencia privada de Snowflake.
    3. En el caso de Private Network Service, si creas una transferencia de datos privada, ingresa el vínculo propio del directorio de servicios. Para obtener más información, consulta Crea una configuración de transferencia privada de Snowflake.
  11. Opcional: En la sección Opciones de notificación, haz lo siguiente:

    1. Haz clic en el botón de activación para habilitar las notificaciones por correo electrónico. Cuando habilitas esta opción, el administrador de transferencias recibe una notificación por correo electrónico cuando falla una ejecución de transferencia.
    2. En Seleccionar un tema de Cloud Pub/Sub (Select a Cloud Pub/Sub topic), elige el nombre de tu tema o haz clic en Crear un tema (Create a topic). Con esta opción, se configuran las notificaciones de ejecución de Pub/Sub para tu transferencia.
  12. Si usas CMEK, en la sección Opciones avanzadas, selecciona Clave administrada por el cliente. Aparecerá una lista de las CMEK disponibles para que elijas. Para obtener información sobre cómo funcionan las CMEK con el Servicio de transferencia de datos de BigQuery, consulta Especifica la clave de encriptación con transferencias.

  13. Haz clic en Guardar.

  14. La consola de Google Cloud muestra todos los detalles de configuración de la transferencia, incluido un Nombre de recurso para esta transferencia.

bq

Ingresa el comando bq mk y suministra la marca de creación de transferencias --transfer_config. También se requieren las siguientes marcas:

  • --project_id
  • --data_source
  • --target_dataset
  • --display_name
  • --params
bq mk \
    --transfer_config \
    --project_id=project_id \
    --data_source=data_source \
    --target_dataset=dataset \
    --display_name=name \
    --service_account_name=service_account \
    --params='parameters'

Reemplaza lo siguiente:

  • project_id: Es el ID del proyecto de Google Cloud . Si no se especifica --project_id, se usa el proyecto predeterminado.
  • data_source: Es la fuente de datos, snowflake_migration.
  • dataset: Es el conjunto de datos de destino de BigQuery para la configuración de transferencia.
  • name es el nombre visible de la configuración de transferencia. El nombre de la transferencia puede ser cualquier valor que te permita identificarla si es necesario hacerle modificaciones más tarde.
  • service_account: (Opcional) El nombre de la cuenta de servicio que se usa para autenticar tu transferencia. La cuenta de servicio debe ser propiedad del mismo project_id que se usa para crear la transferencia y debe tener todos los roles necesarios.
  • parameters son los parámetros de la configuración de transferencia creada en formato JSON. Por ejemplo: --params='{"param":"param_value"}'

Puedes configurar los siguientes parámetros para tu configuración de transferencia de Snowflake:

  • account_identifier: Especifica un identificador único para tu cuenta de Snowflake, que es una combinación del nombre de tu organización y el nombre de la cuenta. El identificador es el prefijo de la URL de la cuenta de Snowflake y no la URL completa. Por ejemplo, account_identifier.snowflakecomputing.com
  • username: Especifica el nombre de usuario del usuario de Snowflake cuyas credenciales y autorización se usan para acceder a tu base de datos y transferir las tablas de Snowflake.
  • auth_mechanism: Especifica el método de autenticación de usuario de Snowflake. Los valores admitidos son PASSWORD y KEY_PAIR. Para obtener más información, consulta Cómo generar un par de claves para la autenticación.
  • password: Especifica la contraseña del usuario de Snowflake. Este campo es obligatorio si especificaste PASSWORD en el campo auth_mechanism.
  • private_key : Especifica la clave privada vinculada a la clave pública asociada con el usuario de Snowflake. Este campo es obligatorio si especificaste KEY_PAIR en el campo auth_mechanism.
  • is_private_key_encrypted : Especifica true si la clave privada está encriptada con una frase de contraseña.
  • private_key_passphrase : Especifica la frase de contraseña para la clave privada encriptada. Este campo es obligatorio si especificaste KEY_PAIR en el campo auth_mechanism y true en el campo is_private_key_encrypted.
  • warehouse: Especifica un almacén que se usa para la ejecución de esta transferencia de datos.
  • service_account: Especifica una cuenta de servicio para usar con esta transferencia de datos. La cuenta de servicio debe pertenecer al mismo proyecto de Google Cloud en el que se crean la configuración de transferencia y el conjunto de datos de destino. La cuenta de servicio debe tener los permisos necesarios storage.objects.list y storage.objects.get.
  • database: Especifica el nombre de la base de datos de Snowflake que contiene las tablas incluidas en esta transferencia de datos.
  • schema: Especifica el nombre del esquema de Snowflake que contiene las tablas incluidas en esta transferencia de datos.
  • table_name_patterns: Especifica una tabla para transferir ingresando un nombre o un patrón que coincida con el nombre de la tabla en el esquema. Puedes usar expresiones regulares para especificar el patrón, por ejemplo, table1_regex;table2_regex. El patrón debe seguir la sintaxis de la expresión regular de Java. Por ejemplo:

    • lineitem;ordertb coincide con las tablas llamadas lineitem y ordertb.
    • .* coincide con todas las tablas.

      También puedes dejar este campo en blanco para migrar todas las tablas del esquema especificado.

  • ingestion_mode: Especifica el modo de transferencia de la transferencia. Los valores admitidos son FULL y INCREMENTAL. Para obtener más información, consulta Comportamiento de la transferencia de datos.

  • translation_output_gcs_path: (Opcional) Especifica una ruta de acceso a la carpeta de Cloud Storage que contiene los archivos de asignación de esquema del motor de traducción. Puedes dejar este campo vacío para que el conector de Snowflake detecte automáticamente tu esquema.

    • La ruta de acceso debe seguir el formato gs://translation_target_base_uri/metadata/config/db/schema/ y debe terminar con /.
  • storage_integration_object_name: Especifica el nombre del objeto de integración de almacenamiento de Snowflake.

  • cloud_provider: Ingresa AWS, AZURE o GCP según el proveedor de servicios en la nube que aloje tu cuenta de Snowflake.

  • staging_s3_uri: Ingresa el URI del bucket de S3 que se usará como área de etapa de pruebas. Solo se requiere cuando tu cloud_provider es AWS.

  • aws_access_key_id: Ingresa el par de claves de acceso. Solo se requiere cuando tu cloud_provider es AWS.

  • aws_secret_access_key: Ingresa el par de claves de acceso. Solo se requiere cuando tu cloud_provider es AWS.

  • azure_storage_account: Ingresa el nombre de la cuenta de almacenamiento que se usará como área de transferencia. Solo se requiere cuando tu cloud_provider es AZURE.

  • staging_azure_container: Ingresa el contenedor dentro de Azure Blob Storage que se usará como área de transferencia. Solo se requiere cuando tu cloud_provider es AZURE.

  • azure_sas_token: Ingresa el token de SAS. Solo se requiere cuando tu cloud_provider es AZURE.

  • staging_gcs_uri : Ingresa el URI de Cloud Storage que se usará como área de transferencia. Solo se requiere cuando tu cloud_provider es GCP.

  • use_private_network: Si creas una transferencia de datos privada, configúralo como TRUE.

  • service_attachment: Si creas una transferencia de datos privada, especifica el URI del adjunto de servicio. Para obtener más información, consulta Crea una configuración de transferencia privada de Snowflake.

  • private_network_service: Si creas una transferencia de datos privada, especifica el vínculo propio del servicio de NLB. Para obtener más información, consulta Crea una configuración de transferencia privada de Snowflake.

Por ejemplo, para una cuenta de Snowflake alojada en AWS, el siguiente comando crea una transferencia de Snowflake llamada Snowflake transfer config con un conjunto de datos de destino llamado your_bq_dataset y un proyecto con el ID de your_project_id.

  PARAMS='{
  "account_identifier": "your_account_identifier",
  "auth_mechanism": "KEY_PAIR",
  "aws_access_key_id": "your_access_key_id",
  "aws_secret_access_key": "your_aws_secret_access_key",
  "cloud_provider": "AWS",
  "database": "your_sf_database",
  "ingestion_mode": "INCREMENTAL",
  "private_key": "-----BEGIN PRIVATE KEY----- privatekey\nseparatedwith\nnewlinecharacters=-----END PRIVATE KEY-----",
  "schema": "your_snowflake_schema",
  "service_account": "your_service_account",
  "storage_integration_object_name": "your_storage_integration_object",
  "staging_s3_uri": "s3://your/s3/bucket/uri",
  "table_name_patterns": ".*",
  "translation_output_gcs_path": "gs://sf_test_translation/output/metadata/config/database_name/schema_name/",
  "username": "your_sf_username",
  "warehouse": "your_warehouse"
}'

bq mk --transfer_config \
    --project_id=your_project_id \
    --target_dataset=your_bq_dataset \
    --display_name='snowflake transfer config' \
    --params="$PARAMS" \
    --data_source=snowflake_migration

API

Usa el método projects.locations.transferConfigs.create y suministra una instancia del recurso TransferConfig.

Especifica la clave de encriptación con transferencias

Puedes especificar claves de encriptación administradas por el cliente (CMEKs) para encriptar los datos de una ejecución de transferencia. Puedes usar una CMEK para admitir transferencias de Snowflake.

Cuando especificas una CMEK con una transferencia, el Servicio de transferencia de datos de BigQuery aplica la CMEK a cualquier memoria caché del disco intermedia de datos transferidos para que todo el flujo de trabajo de transferencia de datos cumpla con la CMEK.

No puedes actualizar una transferencia existente para agregar una CMEK si la transferencia no se creó en un principio con una CMEK. Por ejemplo, no puedes cambiar una tabla de destino que se encriptó de forma predeterminada para que ahora se encripte con CMEK. Por el contrario, tampoco puedes cambiar una tabla de destino encriptada con CMEK para que tenga un tipo de encriptación diferente.

Puedes actualizar una CMEK para una transferencia si la configuración de la transferencia se creó en un principio con una encriptación de CMEK. Cuando actualizas una CMEK para una configuración de transferencia, el Servicio de transferencia de datos de BigQuery propaga la CMEK a las tablas de destino en la siguiente ejecución de la transferencia, en la que el Servicio de transferencia de datos de BigQuery reemplaza cualquier CMEK desactualizada por la CMEK nueva durante la ejecución de la transferencia. Para obtener más información, consulta Actualiza una transferencia.

También puedes usar las claves predeterminadas del proyecto. Cuando especificas una clave predeterminada de proyecto con una transferencia, el Servicio de transferencia de datos de BigQuery usa la clave predeterminada del proyecto como la clave predeterminada para cualquier configuración de transferencia nueva.

Cuotas y límites

De forma predeterminada, BigQuery tiene una cuota de carga de 15 TB para cada trabajo de carga por cada tabla. Internamente, Snowflake comprime los datos de la tabla, por lo que el tamaño de la tabla exportada es mayor que el tamaño de la tabla informado por Snowflake. Para cargar tablas de más de 15 TB, comunícate con dts-migration-preview-support@google.com.

Para mejorar los tiempos de carga de las tablas más grandes, especifica el tipo de trabajo PIPELINE para la asignación de tu reserva.

Debido al modelo de coherencia de Amazon S3, es posible que algunos archivos no se incluyan en la transferencia a BigQuery.

Precios

Para obtener información sobre los precios del Servicio de transferencia de datos de BigQuery, consulta la página Precios.

  • Si el almacén de Snowflake y el bucket de Amazon S3 se encuentran en regiones diferentes, Snowflake aplica cargos de salida cuando ejecutas una transferencia de datos de Snowflake. No hay cargos de salida por las transferencias de datos de Snowflake si tanto el almacén de Snowflake como el bucket de Amazon S3 se encuentran en la misma región.
  • Cuando se transfieren datos de AWS a Google Cloud, se aplican cargos de salida entre nubes.

¿Qué sigue?