Migración de Snowflake a BigQuery
En este documento, se proporciona una introducción sobre cómo puedes migrar de Snowflake a BigQuery. En las siguientes secciones, se presentan las herramientas de migración para ayudarte a realizar una migración de BigQuery y se describen algunas diferencias entre Snowflake y BigQuery para ayudarte a planificar tu migración.
Migra flujos de trabajo de Snowflake a BigQuery
Cuando planifiques una migración de BigQuery, considera los diferentes flujos de trabajo que tienes en Snowflake y cómo podrías migrarlos de forma individual. Para minimizar el impacto en tus operaciones existentes, te recomendamos que migres tus consultas de SQL a BigQuery y, luego, migres tu esquema y código.
Migra consultas de SQL
Para migrar tus consultas de SQL, el Servicio de migración de BigQuery ofrece varias funciones de traducción de SQL para automatizar la conversión de tus consultas de SQL de Snowflake a SQL de GoogleSQL, como el traductor de SQL por lotes para traducir consultas de forma masiva, el traductor de SQL interactivo para traducir consultas individuales y la API de traducción de SQL. Estos servicios de traducción también incluyen la funcionalidad mejorada de Gemini para simplificar aún más el proceso de migración de consulta en SQL.
Mientras traduces tus consultas de SQL, revisa cuidadosamente las consultas traducidas para verificar que los tipos de datos y las estructuras de las tablas se controlen correctamente. Para ello, te recomendamos que crees una amplia variedad de casos de prueba con diferentes situaciones y datos. Luego, ejecuta estos casos de prueba en BigQuery para comparar los resultados con los resultados originales de Snowflake. Si hay alguna diferencia, analiza y corrige las consultas convertidas.
Migra el esquema y el código
Para migrar el esquema y los datos de Snowflake, usa el conector de Snowflake en el Servicio de transferencia de datos de BigQuery para configurar una transferencia de datos. Cuando configuras la transferencia de datos, puedes especificar tablas de Snowflake específicas para incluir y también hacer que el conector detecte automáticamente el esquema de la tabla y los tipos de datos durante una transferencia.
Para obtener más información sobre cómo configurar una transferencia de datos de Snowflake, consulta Programa una transferencia de Snowflake.
Transferencia incremental
Cuando realizas una transferencia de datos de Snowflake con el conector de Snowflake, puedes configurar una transferencia incremental que solo transfiera los datos que se cambiaron desde la última transferencia de datos, en lugar de cargar todo el conjunto de datos con cada transferencia de datos. Para obtener más información, consulta Programa una transferencia de Snowflake.
Migra otras funciones de Snowflake
Considera las siguientes funciones de Snowflake mientras planificas tu migración a BigQuery.
| Caso de uso | Función de Snowflake | Función de BigQuery |
|---|---|---|
| Organización de archivos de datos sin procesar para carga y exportación | Los datos se pueden subir y descargar a la organización con los comandos `GET` y `PUT`. Las consultas y los comandos `COPY` pueden leer y escribir en las organizaciones. | BigQuery se basa en Cloud Storage para organizar los datos de los archivos y admite la lectura y la escritura en varias otras fuentes y Google Cloud servicios. Usa Cloud Storage para subir y descargar archivos de datos sin procesar. Consulta Introducción a la carga de datos para obtener más detalles sobre una variedad de formas de cargar datos desde Cloud Storage y otras fuentes, y Introducción a la exportación de datos para obtener más detalles sobre la exportación a Cloud Storage y otras fuentes. |
| Precomputación de resultados de consultas comunes | Las tablas dinámicas se pueden definir con una consulta y actualizar según una programación. | Las vistas materializadas se pueden configurar para que persistan y actualicen automáticamente el cálculo de las consulta en SQL. |
| Operaciones pequeñas de DML | Las tablas híbridas de Snowflake permiten pequeñas escrituras de DML. | Se puede usar DML detallado en BigQuery para mejorar la latencia y la capacidad de procesamiento de las escrituras pequeñas. Para casos de uso avanzados de procesamiento híbrido transaccional/analítico (HTAP), considera usar conjuntos de datos externos de Spanner. |
| Notebooks y visualización | Las aplicaciones de Snowflake Streamlit pueden visualizar datos con código de Python. | Los notebooks de BigQuery y la biblioteca de Python BigFrames se pueden usar para explorar y visualizar datos en Python. Para obtener información sobre las integraciones con Looker y otras herramientas de análisis y visualización, consulta Introducción a las herramientas de análisis y de inteligencia empresarial. |
| Diseño físico de los datos | Snowflake admite el agrupamiento en clústeres y la micropartición para organizar los datos en el disco. | BigQuery admite la partición y el agrupamiento en clústeres explícitos para brindar a los usuarios un control preciso sobre cómo se distribuyen y organizan los datos, lo que puede mejorar el costo y el rendimiento del tiempo de ejecución. El servicio de traducción de SQL controla automáticamente la traducción del agrupamiento en clústeres de tablas y se puede configurar para personalizar la partición y el agrupamiento en clústeres cuando se migran DDL. |
| Funciones y procedimientos externos | Snowflake admite funciones y procedimientos almacenados implementados en varios lenguajes externos. | BigQuery admite llamadas de funciones externas a través de Cloud Run Functions. También puedes usar [funciones definidas por el usuario](/bigquery/docs/user-defined-functions) (UDF), como UDF de SQL, que se ejecutan en BigQuery. BigQuery admite SQL para procedimientos almacenados. Para otros lenguajes, te recomendamos que uses funciones externas o lógica de aplicación del cliente. |
Funciones de seguridad de BigQuery
Cuando migres de Snowflake a BigQuery, considera cómo Google Cloud maneja la seguridad de manera diferente a Snowflake.
La seguridad en BigQuery está intrínsecamente vinculada a Identity and Access Management (IAM) en Google Cloud. Los privilegios de IAM definen las operaciones que se permiten en un recurso y se aplican en el Google Cloud nivel, lo que proporciona un enfoque centralizado y coherente para la administración de la seguridad. Las siguientes son algunas funciones de seguridad clave de Google Cloud:
- Seguridad integrada: BigQuery aprovecha las funciones de seguridad de Google Cloud's. Esto incluye IAM para un control de acceso detallado para una integración de seguridad sólida y sin problemas.
- Seguridad a nivel de los recursos: IAM se enfoca en el control de acceso a nivel de los recursos, otorgando permisos a usuarios y grupos para varios recursos y servicios de BigQuery. Este enfoque permite una administración eficaz de los derechos de acceso para que los usuarios solo tengan los permisos necesarios para realizar sus tareas.
- Seguridad de redes: BigQuery se beneficia de las sólidas funciones de seguridad de redes de Google Cloud's, como nube privada virtual y las conexiones privadas.
Cuando migres de Snowflake a BigQuery, considera los siguientes requisitos de migración relacionados con la seguridad:
- Configuración de IAM: Debes configurar los roles y permisos de IAM en BigQuery para que coincidan con tus políticas de control de acceso de Snowflake existentes. Esto implica asignar roles de Snowflake a los roles y permisos de IAM de BigQuery adecuados.
- Control de acceso detallado: Si usas seguridad a nivel de la fila o de la columna en Snowflake, deberás implementar controles equivalentes en BigQuery con vistas autorizadas o etiquetas de política.
- Migración de vistas y UDF: Cuando migres vistas y UDF, verifica que los controles de seguridad asociados se traduzcan correctamente a vistas autorizadas y UDF autorizadas en BigQuery.
Encriptación
BigQuery encripta tus datos en reposo y en tránsito de forma predeterminada. Si necesitas más control sobre las claves de encriptación, BigQuery admite claves de encriptación administradas por el cliente en Cloud Key Management Service. También puedes usar la encriptación a nivel de columna.
Para mantener la seguridad de los datos durante y después de la migración a BigQuery, considera lo siguiente:
- Administración de claves: Si necesitas claves administradas por el cliente, establece una estrategia de administración de claves en Cloud Key Management Service y configura BigQuery para que use esas claves.
- Enmascaramiento o asignación de tokens de datos: Si se incluyen datos sensibles, evalúa si se requiere el enmascaramiento o la asignación de tokens de datos para protegerlos.
- Seguridad a nivel de la fila: Implementa la seguridad a nivel de la fila con vistas autorizadas, filtros de seguridad a nivel de la fila o cualquier otro método adecuado.
- Análisis de vulnerabilidades y pruebas de penetración: Realiza análisis de vulnerabilidades y pruebas de penetración periódicos para verificar la postura de seguridad de tu entorno de BigQuery.
Funciones
Los roles son las entidades a las que se les pueden otorgar y revocar privilegios en objetos que se pueden proteger.
En IAM, los permisos se agrupan en roles. IAM proporciona tres tipos de roles:
- Roles básicos: estos roles incluyen los roles de propietario, editor y visualizador. Puedes aplicar
estos roles en los niveles de recursos de proyecto o servicio mediante la
Google Cloud consola, la API de Identity and Access Management, o
gcloud CLI. En general, para obtener la seguridad más sólida, recomendamos que uses roles predefinidos para seguir el principio de privilegio mínimo. - Roles predefinidos: estos roles proporcionan un acceso más detallado a las funciones de un producto (como BigQuery) y están diseñados para admitir casos de uso comunes y patrones de control de acceso.
- Roles personalizados: estos roles se componen de permisos especificados por el usuario.
Control de acceso
Snowflake te permite otorgar roles a otros roles, lo que crea una jerarquía de roles. IAM no admite una jerarquía de roles, pero implementa una jerarquía de recursos. La jerarquía de IAM incluye el nivel de organización, el nivel de carpeta, el nivel de proyecto y el nivel de recurso. Puedes establecer roles de IAM en cualquier nivel de la jerarquía, y los recursos heredan todas las políticas de sus recursos superiores.
BigQuery admite el control de acceso a nivel de tabla. Los permisos a nivel de tabla determinan los usuarios, grupos y cuentas de servicio que pueden acceder a una tabla o vista. Puedes otorgar a un usuario acceso a tablas o vistas específicas sin que tenga acceso al conjunto de datos completo.
Para obtener un acceso más detallado, también puedes usar el control de acceso a nivel de columna o la seguridad a nivel de la fila. Este tipo de control proporciona un acceso detallado a columnas sensibles mediante el uso de etiquetas de política o clasificaciones de datos basadas en tipos.
También puedes crear vistas autorizadas para limitar el acceso a los datos a fin de obtener un control de acceso más detallado, de modo que los usuarios especificados puedan consultar una vista sin tener acceso de lectura a las tablas subyacentes.
Tipos de datos, propiedades y formatos de archivo admitidos
Snowflake y BigQuery admiten la mayoría de los mismos tipos de datos, aunque a veces usan nombres diferentes. Para obtener una lista completa de los tipos de datos compatibles en Snowflake y BigQuery, consulta Tipos de datos. También puedes usar herramientas de traducción de SQL, como el traductor de SQL interactivo, la API de traducción de SQLo el traductor de SQL por lotes, para traducir diferentes dialectos de SQL a GoogleSQL.
Para obtener más información sobre los tipos de datos compatibles en BigQuery, consulta Tipos de datos de GoogleSQL.
Snowflake puede exportar datos en los siguientes formatos de archivo. Puedes cargar los siguientes formatos directamente en BigQuery:
- Carga datos de CSV desde Cloud Storage.
- Carga datos de Parquet desde Cloud Storage.
- Carga datos JSON desde Cloud Storage.
- Consulta datos de Apache Iceberg.
Herramientas de migración
En la siguiente lista, se describen las herramientas que puedes usar para migrar datos de Snowflake a BigQuery. Para ver ejemplos de cómo se pueden usar estas herramientas juntas en una canalización de migración de Snowflake, consulta Ejemplos de canalización de migración de Snowflake.
COPY INTO <location>comando: Usa este comando en Snowflake para extraer datos de una tabla de Snowflake directamente en un bucket de Cloud Storage especificado. Para obtener un ejemplo de extremo a extremo, consulta Snowflake a BigQuery (snowflake2bq) en GitHub.- Apache Sqoop: Para extraer datos de Snowflake en HDFS o Cloud Storage, envía los trabajos de Hadoop con el controlador JDBC de Sqoop y Snowflake. Sqoop se ejecuta en un entorno de Managed Service para Apache Spark.
- JDBC de Snowflake: Usa este controlador con la mayoría de las herramientas o aplicaciones cliente que son compatibles con JDBC.
Puedes usar las siguientes herramientas genéricas para migrar datos de Snowflake a BigQuery:
- Servicio de transferencia de datos de BigQuery para el conector de Snowflake (vista previa): Realiza una transferencia por lotes automatizada de datos de Cloud Storage a BigQuery.
- La Google Cloud CLI: Esta herramienta de línea de comandos copia los archivos descargados de Snowflake en Cloud Storage.
- Herramienta de línea de comandos de bq: Interactúa con BigQuery a través de esta herramienta de línea de comandos. Entre los casos de uso comunes, se incluyen la creación de esquemas de tablas de BigQuery, la carga de datos de Cloud Storage en tablas y la ejecución de consultas.
- Bibliotecas cliente de Cloud Storage: copia los archivos descargados de Snowflake en Cloud Storage con una herramienta personalizada que use las bibliotecas cliente de Cloud Storage.
- Bibliotecas cliente de BigQuery: interactúa con BigQuery mediante una herramienta personalizada compilada sobre la biblioteca cliente de BigQuery.
- Programador de consultas de BigQuery: Programa consultas de SQL recurrentes con esta función integrada de BigQuery feature.
- Managed Service para Apache Airflow: Usa este entorno de Apache Airflow completamente administrado para organizar los trabajos de carga y las transformaciones de BigQuery.
Para obtener más información sobre la carga de datos en BigQuery, consulta Carga datos en BigQuery.
Precios
Cuando planifiques tu migración de Snowflake, considera el costo de transferir y almacenar datos, y usar servicios en BigQuery. Para obtener más información, consulta Precios.
Puede haber costos de salida por mover datos fuera de Snowflake o AWS. También puede haber costos adicionales cuando se transfieren datos entre regiones o entre diferentes proveedores de servicios en la nube.
Comenzar
En las siguientes secciones, se resume el proceso de migración de Snowflake a BigQuery:
Ejecuta una evaluación de migración
En tu migración de Snowflake a BigQuery, te recomendamos que comiences por ejecutar la herramienta de evaluación de migración de BigQuery para evaluar la viabilidad y los posibles beneficios de mover tu almacén de datos de Snowflake a BigQuery. Esta herramienta proporciona un enfoque estructurado para comprender tu entorno actual de Snowflake y estimar el esfuerzo que implica una migración exitosa.
La ejecución de la herramienta de evaluación de migración de BigQuery produce un informe de evaluación que contiene las siguientes secciones:
- Informe del sistema existente: Es una instantánea del sistema y el uso de Snowflake existentes, incluida la cantidad de bases de datos, esquemas, tablas y el tamaño total en TB. También se enumeran los esquemas por tamaño y se apunta al posible uso de recursos deficientes, como tablas sin escrituras o pocas lecturas.
- Sugerencias de transformación de estado estable de BigQuery: Muestra cómo se verá el sistema en BigQuery después de la migración. Incluye sugerencias para optimizar las cargas de trabajo en BigQuery y evitar el desperdicio.
- Plan de migración: Proporciona información sobre el esfuerzo de migración. Por ejemplo, pasar del sistema existente al estado estable de BigQuery. En esta sección, se incluye el recuento de consultas que se tradujeron automáticamente y el tiempo previsto para mover cada tabla a BigQuery.
Para obtener más información sobre los resultados de una evaluación de migración, consulta Revisa el informe de Data Studio.
Valida tu migración
Una vez que hayas migrado tus datos de Snowflake a BigQuery, ejecuta la Herramienta de validación de datos (DVT) para realizar una validación de datos en tus datos de BigQuery recién migrados. La DVT valida varias funciones, desde el nivel de la tabla hasta el nivel de la fila, para verificar que los datos migrados funcionen según lo previsto.