Conexión a un almacén de datos de Snowflake con AWS Schema Conversion Tool - AWS Schema Conversion Tool

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Conexión a un almacén de datos de Snowflake con AWS Schema Conversion Tool

Puede utilizarlos AWS SCT para convertir esquemas, objetos de código y código de aplicaciones de Snowflake a Amazon Redshift.

Privilegios para Snowflake como base de datos de origen

Puede crear un rol con privilegios y asignar a este rol el nombre de un usuario utilizando el rol SECURITYADMIN y el contexto de la sesión de SECURITYADMIN.

El siguiente ejemplo crea privilegios mínimos y se los concede al usuario min_privs.

create role role_name; grant role role_name to role sysadmin; grant usage on database db_name to role role_name; grant usage on schema db_name.schema_name to role role_name; grant usage on warehouse datawarehouse_name to role role_name; grant monitor on database db_name to role role_name; grant monitor on warehouse datawarehouse_name to role role_name; grant select on all tables in schema db_name.schema_name to role role_name; grant select on future tables in schema db_name.schema_name to role role_name; grant select on all views in schema db_name.schema_name to role role_name; grant select on future views in schema db_name.schema_name to role role_name; grant select on all external tables in schema db_name.schema_name to role role_name; grant select on future external tables in schema db_name.schema_name to role role_name; grant usage on all sequences in schema db_name.schema_name to role role_name; grant usage on future sequences in schema db_name.schema_name to role role_name; grant usage on all functions in schema db_name.schema_name to role role_name; grant usage on future functions in schema db_name.schema_name to role role_name; grant usage on all procedures in schema db_name.schema_name to role role_name; grant usage on future procedures in schema db_name.schema_name to role role_name; create user min_privs password='real_user_password' DEFAULT_ROLE = role_name DEFAULT_WAREHOUSE = 'datawarehouse_name'; grant role role_name to user min_privs;

En el ejemplo anterior, sustituya los marcadores de posición del modo que sigue:

  • Reemplazar role_name con el nombre de un rol con privilegios de solo lectura.

  • Sustituya db_name por el nombre de la base de datos de origen.

  • Sustituya schema_name por el nombre del esquema de origen.

  • Reemplazar nombre del almacén de datos con el nombre del almacén de datos necesario.

  • Sustituya min_privs por el nombre de un usuario que tenga privilegios mínimos.

Los parámetros DEFAULT_ROLE y DEFAULT_WAREHOUSE son sensibles a las claves.

Configurar el acceso seguro a Amazon S3

Las políticas de seguridad y administración de acceso de un bucket de Amazon S3 permiten a Snowflake acceder, leer y escribir datos en el bucket de S3. Puede configurar el acceso seguro a un bucket privado de Amazon S3 mediante el tipo de objeto STORAGE INTEGRATION de Snowflake. Un objeto de integración de almacenamiento de Snowflake delega la responsabilidad de autenticación en una entidad de administración de identidades y accesos de Snowflake.

Para obtener más información, consulte Configurar una integración de almacenamiento de Snowflake para acceder a Amazon S3 en la documentación de Snowflake.

Conexión a Snowflake como origen

Utilice el siguiente procedimiento para conectarse a su base de datos de origen con AWS Schema Conversion Tool.

Para conectarse a una base de datos de origen de Snowflake
  1. En AWS Schema Conversion Tool, elija Agregar fuente.

  2. Seleccione Snowflake y, a continuación, seleccione Siguiente.

    Se abrirá el cuadro de diálogo Agregar origen.

  3. En Nombre de conexión, escriba un nombre para su base de datos. AWS SCT muestra este nombre en el árbol del panel izquierdo.

  4. Utilice las credenciales de la base de datos de AWS Secrets Manager o introdúzcalas manualmente:

    • Para usar las credenciales de base de datos de Secrets Manager, siga las instrucciones siguientes:

      1. En Secreto de AWS , elija el nombre del secreto.

      2. Seleccione Rellenar para rellenar automáticamente todos los valores del cuadro de diálogo de conexión a la base de datos de Secrets Manager.

      Para obtener información sobre el uso de las credenciales de bases de datos de Secrets Manager, consulteConfigurando AWS Secrets Manager en el AWS Schema Conversion Tool.

    • Para introducir manualmente la información de conexión del almacenamiento de datos de origen de Snowflake, siga las instrucciones siguientes:

      Parámetro Acción
      Nombre del servidor

      Introduzca el nombre o la dirección IP del sistema de nombres de dominio (DNS) del servidor de base de datos de origen.

      Puerto del servidor

      Escriba el puerto utilizado para conectarse al servidor de base de datos de origen.

      Base de datos

      Escriba el nombre de la base de datos de Snowflake.

      Nombre de usuario y Contraseña

      Introduzca las credenciales de la base de datos para conectarse al servidor de base de datos de origen.

      AWS SCT almacena la contraseña en un formato cifrado solo si la solicita explícitamente.

      Usa SSL

      Elija esta opción si desea utilizar Secure Sockets Layer (SSL) para conectarse a la base de datos. Proporcione la siguiente información adicional, según corresponda, en la SSLpestaña:

      • Ruta de clave privada: la ubicación de una clave privada.

      • Contraseña: la contraseña de la clave privada.

      Para obtener más información sobre la SSL compatibilidad con Snowflake, consulte Configurar las opciones de seguridad para las conexiones.

      Almacenar contraseña

      AWS SCT crea una bóveda segura para almacenar los SSL certificados y las contraseñas de las bases de datos. Si configura esta opción, puede almacenar la contraseña de la base de datos. De este modo, podrá conectarse rápidamente a la base de datos sin tener que introducir la contraseña.

      Ruta del controlador de Snowflake

      Escriba la ruta al controlador que va a usar para conectarse a la base de datos de origen. Para obtener más información, consulte Instalación de JDBC controladores para AWS Schema Conversion Tool.

      Si almacena la ruta al controlador en la configuración global del proyecto, la ruta del controlador no aparecerá en el cuadro de diálogo de conexión. Para obtener más información, consulte Almacenamiento de rutas a los controladores en la configuración global.

  5. Elija Probar conexión para comprobar que AWS SCT puede conectarse a la base de datos de origen.

  6. Seleccione Conectar para conectarse a su base de datos de origen.

Limitaciones de Snowflake como origen

Las siguientes son limitaciones a la hora de utilizar Snowflake como fuente para: AWS SCT

  • Los identificadores de objeto deben ser únicos en el contexto del tipo de objeto y del objeto principal:

    Base de datos

    Los identificadores de esquema deben ser únicos dentro de una base de datos.

    Schemas

    Los identificadores de objetos, como los de tablas y vistas, deben ser únicos dentro de un esquema.

    Tablas/Vistas

    Los identificadores de columna deben ser únicos dentro de una tabla.

  • El número máximo de tablas para los tipos de nodos de clúster large y xlarge es de 9 900. El número máximo de tablas para los tipos de nodos de clúster 8xlarge es 100 000. El límite incluye tablas temporales, tanto las definidas por el usuario como las creadas con Amazon Redshift durante el procesamiento de las consultas o el mantenimiento del sistema. Para obtener más información, consulte Cuotas de Amazon Redshift en la Guía de administración de clústeres de Amazon Redshift.

  • Para los procedimientos almacenados, el número máximo de argumentos de entrada y salida es 32.

Tipos de datos de origen para Snowflake

A continuación, encontrará los tipos de datos de origen de Snowflake que se admiten cuando se utilizan AWS SCT y el mapeo predeterminado a un destino de Amazon Redshift.

Tipos de datos de Snowflake Tipos de datos de Amazon Redshift

NUMBER

NUMERIC(38)

NUMBER(p)

Si p es =< 4, entonces SMALLINT

Si p es => 5 y =< 9, entonces INTEGER

Si p es => 10 y =< 18, entonces BIGINT

Si p es => 19 entonces NUMERIC (p)

NUMBER(p, 0)

Si p es =< 4, entonces SMALLINT

Si p es => 5 y =< 9, entonces INTEGER

Si p es => 10 y =< 18, entonces BIGINT

Si p es => 19 entonces: NUMERIC (p,0)

NUMBER(p, s)

Si p es => 1 y =< 38, y si s es => 1 y =< 37, entonces

NUMERIC(p, s)

FLOAT

FLOAT

TEXT

Caracteres Unicode de hasta 16 777 216 bytes; hasta 4 bytes por carácter.

VARCHAR(MAX)

TEXT(p)

Caracteres Unicode de hasta 65 535 bytes; hasta 4 bytes por carácter.

Si p es =< 65.535 entonces, VARCHAR (p)

TEXT(p)

Caracteres Unicode de hasta 16 777 216 bytes; hasta 4 bytes por carácter.

Si p es => 65.535 y =< 16.777.216 entonces, () VARCHAR MAX

BINARY

Caracteres de un solo byte de hasta 8 388 608 bytes; 1 byte por carácter.

VARCHAR(MAX)

BINARY(p)

Caracteres de un solo byte de hasta 65 535 bytes; 1 byte por carácter.

VARCHAR(p)

BINARY(p)

Caracteres de un solo byte de hasta 8 388 608 bytes; 1 byte por carácter.

VARCHAR(MAX)

BOOLEAN

BOOLEAN

DATE

DATE

TIME

Valores de hora entre 00:00:00 y 23:59:59,999999999.

VARCHAR(18)

TIME(f)

Valores de hora entre 00:00:00 y 23:59:59,9(f).

VARCHAR(n) — 9 + dt-attr-1

TIMESTAMP_NTZ

TIMESTAMP

TIMESTAMP_TZ

TIMESTAMPTZ

Configuración de conversión de Snowflake a Amazon Redshift

Para editar la configuración de conversión de Snowflake a Amazon Redshift, seleccione Configuración AWS SCT en y, a continuación, elija Configuración de conversión. En la lista superior, elija Snowflake y, a continuación, Snowflake — Amazon Redshift. AWS SCT muestra todos los ajustes disponibles para la conversión de Snowflake a Amazon Redshift.

La configuración AWS SCT de conversión de Snowflake a Amazon Redshift incluye opciones para lo siguiente:

  • Limitar el número de comentarios con elementos de acción en el código convertido.

    En Añadir comentarios en el código convertido para los elementos de acción de la gravedad seleccionada o superior, elija la gravedad de los elementos de acción. AWS SCT añade comentarios en el código convertido para los elementos de acción de la gravedad seleccionada o superior.

    Por ejemplo, para minimizar el número de comentarios en el código convertido, seleccione Solo errores. Para incluir comentarios para todos los elementos de acción del código convertido, seleccione Todos los mensajes.

  • Para establecer el número máximo de tablas que AWS SCT se pueden aplicar al clúster de Amazon Redshift de destino.

    En El número máximo de tablas para el clúster de Amazon Redshift de destino, elija el número de tablas que se AWS SCT pueden aplicar a su clúster de Amazon Redshift.

    Amazon Redshift tiene cuotas que limitan las tablas de uso para los distintos tipos de nodos de clúster. Si elige Auto, AWS SCT determina el número de tablas que se van a aplicar al clúster de Amazon Redshift de destino en función del tipo de nodo. Si lo desea, elija el valor manualmente. Para obtener más información, consulte Cuotas y límites de Amazon Redshift en la Guía de administración de Amazon Redshift.

    AWS SCT convierte todas las tablas de origen, incluso si son más de las que puede almacenar el clúster de Amazon Redshift. AWS SCT almacena el código convertido en su proyecto y no lo aplica a la base de datos de destino. Si alcanza la cuota de clústeres de Amazon Redshift para las tablas al aplicar el código convertido, AWS SCT mostrará un mensaje de advertencia. Además, AWS SCT aplica tablas al clúster de Amazon Redshift de destino hasta que el número de tablas alcance el límite.

  • Aplicar compresión a las columnas de la tabla de Amazon Redshift. Para ello, seleccione Usar codificación de compresión.

    AWS SCT asigna automáticamente la codificación de compresión a las columnas mediante el algoritmo Amazon Redshift predeterminado. Para obtener más información, consulte Codificaciones de compresión en la Guía para desarrolladores de bases de datos de Amazon Redshift.

    De forma predeterminada, Amazon Redshift no aplica compresión a las columnas definidas como claves de clasificación y distribución. Puede cambiar este comportamiento y aplicar compresión a estas columnas. Para ello, seleccione Usar codificación de compresión para KEY las columnas. Puede seleccionar esta opción solo si selecciona la opción Usar codificación de compresión.

Configuración de optimización de la conversión de Snowflake a Amazon Redshift

Para editar la configuración de optimización de conversiones de Snowflake a Amazon Redshift, seleccione Configuración AWS SCT en y, a continuación, elija Configuración de conversión. En la lista superior, elija Snowflake y, a continuación, Snowflake — Amazon Redshift. En el panel izquierdo, elija Estrategias de optimización. AWS SCT muestra la configuración de optimización de conversiones para la conversión de Snowflake a Amazon Redshift.

La configuración AWS SCT de optimización de conversiones de Snowflake a Amazon Redshift incluye opciones para lo siguiente:

  • Trabajar con optimización automática de tablas. Para ello, seleccione Utilizar el ajuste automático de tablas de Amazon Redshift.

    La optimización automática de tablas es una capacidad de autoajuste presente en Amazon Redshift que optimiza automáticamente el diseño de tablas. Para obtener más información, consulte Trabajo con optimización automática de tablas en la Guía para desarrolladores de bases de datos de Amazon Redshift.

    Para confiar únicamente en la optimización automática de las tablas, elija Ninguna en Estrategia inicial de selección de claves.

  • Elegir las claves de clasificación y distribución según su estrategia.

    Puede elegir las claves de clasificación y distribución utilizando metadatos de Amazon Redshift, información estadística o ambas opciones. En estrategia inicial de selección de claves, en la pestaña Estrategias de optimización, elija una de las siguientes opciones:

    • Utilizar metadatos e ignorar la información estadística

    • Ignorar los metadatos, utilizar información estadística

    • Utilizar metadatos e información estadística

    En función de la opción que elija, puede seleccionar estrategias de optimización. A continuación, introduzca el valor (0—100) para cada estrategia. Estos valores definen la ponderación de cada estrategia. Con estos valores de ponderación, AWS SCT define cómo influye cada regla en la elección de las claves de distribución y clasificación. Los valores predeterminados se basan en las prácticas recomendadas de AWS migración.

    Puede definir el tamaño de las tablas pequeñas para la estrategia Buscar tablas pequeñas. En Recuento mínimo de filas de la tabla y Recuento máximo de filas de la tabla, introduzca el número mínimo y máximo de filas de una tabla para definirla como una tabla pequeña. AWS SCT aplica el estilo ALL de distribución a las tablas pequeñas. En este caso, se distribuye una copia de toda la tabla a cada nodo.

  • Configurar los detalles de la estrategia.

    Además de definir la ponderación de cada estrategia de optimización, puede configurar los ajustes de optimización. Para ello, elija Optimización de la conversión.

    • En Límite de columnas de clave de clasificación, introduzca el número máximo de columnas en la clave de clasificación.

    • Para el valor de umbral asimétrico, introduzca el porcentaje (0—100) de un valor asimétrico para una columna. AWS SCT excluye de la lista de candidatos a la clave de distribución las columnas con un valor de sesgo superior al umbral. AWS SCT define el valor asimétrico de una columna como la relación porcentual entre el número de apariciones del valor más común y el número total de registros.

    • En Consultas N principales de la tabla del historial de consultas, introduzca el número (1–100) de las consultas que se van a analizar con más frecuencia.

    • En Seleccionar usuario de estadísticas, elija el usuario de la base de datos cuyas estadísticas de consulta desee analizar.

    Además, en la pestaña Estrategias de optimización, puede definir el tamaño de las tablas pequeñas para la estrategia Buscar tablas pequeñas. En Recuento mínimo de filas de la tabla y Recuento máximo de filas de la tabla, introduzca el número mínimo y máximo de filas de una tabla para considerarla una tabla pequeña. AWS SCT aplica el estilo ALL de distribución a las tablas pequeñas. En este caso, se distribuye una copia de toda la tabla a cada nodo.