

# Conectarse a Snowflake en AWS Glue Studio
<a name="connecting-to-data-snowflake"></a>

**nota**  
 Puede usar AWS Glue para Spark para leer y escribir en tablas de Snowflake en AWS Glue 4.0 y versiones posteriores. Para configurar una conexión de Snowflake con trabajos de AWS Glue mediante programación, consulte [Conexiones Redshift](aws-glue-programming-etl-connect-redshift-home.md). 

 AWS Glue proporciona soporte integrado para Snowflake. AWS Glue Studio proporciona una interfaz visual para conectarse a Snowflake, crear trabajos de integración de datos y ejecutarlos en el tiempo de ejecución de Spark sin servidor de AWS Glue Studio. 

 AWS Glue Studio crea una conexión unificada para Snowflake. Para obtener más información, consulte [Consideraciones](using-connectors-unified-connections.md#using-connectors-unified-connections-considerations). 

**Topics**
+ [Crear una conexión con Snowflake](creating-snowflake-connection.md)
+ [Creación de un nodo de origen de Snowflake](creating-snowflake-source-node.md)
+ [Creación de un nodo de destino de Snowflake](creating-snowflake-target-node.md)
+ [Opciones avanzadas](#creating-snowflake-connection-advanced-options)

# Crear una conexión con Snowflake
<a name="creating-snowflake-connection"></a>

**nota**  
 Las conexiones unificadas (conexión v2) estandarizan todas las conexiones de modo que utilicen claves `USERNAME`, `PASSWORD` para las credenciales de autenticación básica. Aún puede crear una conexión v1 a través de la API con secretos que contengan `sfUser`, `sfPassword`. 

 Al agregar un **origen de datos: nodo Snowflake** en AWS Glue Studio, puede elegir una conexión de Snowflake en AWS Glue existente o crear una nueva conexión. Debe elegir un tipo de conexión `SNOWFLAKE` y no un tipo de conexión `JDBC` configurado para conectarse a Snowflake. Utilice el siguiente procedimiento para crear una conexión con Snowflake en AWS Glue:

**Crear una conexión con Snowflake**

1. En Snowflake, genere un usuario *snowflakeUser* y una contraseña *snowflakePassword*. 

1. Determine con qué almacén de Snowflake interactuará este usuario, *snowflakeWarehouse*. Configúrelo como `DEFAULT_WAREHOUSE` para *snowflakeUser* en Snowflake o recuérdelo para el siguiente paso.

1. En AWS Secrets Manager, cree un secreto con sus credenciales de Snowflake. Para crear un secreto en Secrets Manager, siga el tutorial disponible en [Crear un secreto AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html#create_secret_cli) en la documentación AWS Secrets Manager. Después de crear el secreto, conserve el nombre secreto, *secretName*, para el siguiente paso. 
   + Al seleccionar **pares clave/valor**, cree un par para *snowflakeUser* con la clave `sfUser`.
   + Al seleccionar **pares clave/valor**, cree un par para *snowflakePassword* con la clave `sfPassword`.
   + *Al seleccionar **pares clave/valor**, cree un par para snowflakeWarehouse * con la clave `sfWarehouse`. Esto no es necesario si hay un valor predeterminado en Snowflake. 

1. En el catálogo de datos de AWS Glue, cree una conexión mediante los pasos que se indican en [Agregar una conexión en AWS Glue](https://docs.aws.amazon.com//glue/latest/dg/console-connections.html). Tras crear la conexión, conserve el nombre de la conexión, *connectionName*, para el siguiente paso. 
   + Al seleccionar un **tipo de conexión**, seleccione Snowflake.
   + Al seleccionar la **URL de Snowflake**, proporcione el nombre de host de la instancia de Snowflake. La URL utilizará un nombre de host en el formulario `account_identifier.snowflakecomputing.com`.
   + Al seleccionar un **secreto AWS**, proporcione un *secretName*.

# Creación de un nodo de origen de Snowflake
<a name="creating-snowflake-source-node"></a>

## Permisos necesarios
<a name="creating-snowflake-source-node-permissions"></a>

 los trabajos de AWS Glue Studio que utilizan orígenes de datos de Snowflake requieren permisos adicionales. Para obtener más información sobre cómo agregar permisos a los trabajos de ETL, consulte [Revisar los permisos de IAM necesarios para los](https://docs.aws.amazon.com/glue/latest/ug/setting-up.html#getting-started-min-privs-job) trabajos de ETL. 

 las conexiones de `SNOWFLAKE` en AWS Glue utilizan un secreto de AWS Secrets Manager para proporcionar información sobre las credenciales. Sus roles de vista previa de datos y trabajos en AWS Glue Studio deben tener permiso para leer este secreto.

## Agregar un origen de datos de Snowflake
<a name="creating-snowflake-source-node-add"></a>

**Requisitos previos**:
+ Un secreto de AWS Secrets Manager para sus credenciales de Snowflake
+ Una conexión del catálogo de datos de AWS Glue tipo Snowflake

**Para agregar un nodo de **Origen de datos: Snowflake**:**

1.  Elija la conexión para el origen de datos de Snowflake. Esto supone que la conexión ya existe y que puede seleccionar entre las conexiones existentes. Si necesita crear una conexión, elija **Crear conexión de Snowflake**. Para más información, consulte [Información general sobre el uso de conectores y conexiones](https://docs.aws.amazon.com/glue/latest/ug/connectors-chapter.html#using-connectors-overview). 

    Una vez que haya elegido una conexión, puede ver las propiedades de la conexión mediante un clic en **Ver propiedades**. La información sobre la conexión está visible, como la URL, los grupos de seguridad, la subred, la zona de disponibilidad, la descripción y las marcas horarias creadas (UTC) y actualizadas por última vez (UTC). 

1.  Elija una opción de origen de Snowflake: 
   +  **Elija una sola tabla**: esta es la tabla que contiene los datos a los que desea acceder desde una sola tabla de Snowflake. 
   +  **Ingresar una consulta personalizada**: permite acceder a un conjunto de datos de varias tablas de Snowflake en función de la consulta personalizada. 

1.  Si ha elegido una sola tabla, ingrese el nombre de un esquema de Snowflake. 

    O bien, elija **Ingresar consulta personalizada**. Elija esta opción para acceder a un conjunto de datos personalizado desde varias tablas de Snowflake. Al elegir esta opción, ingrese la consulta Snowflake. 

1.  En las opciones de **rendimiento y seguridad** (opcional), 
   +  **Habilite la función desplegable de consultas**: elija si quiere transferir el trabajo a la instancia de Snowflake. 

1.  En las **propiedades personalizadas de Snowflake** (opcional), ingrese los parámetros y valores según sea necesario. 

# Creación de un nodo de destino de Snowflake
<a name="creating-snowflake-target-node"></a>

## Permisos necesarios
<a name="creating-snowflake-target-node-permissions"></a>

 los trabajos de AWS Glue Studio que utilizan orígenes de datos de Snowflake requieren permisos adicionales. Para obtener más información sobre cómo agregar permisos a los trabajos de ETL, consulte [Revisar los permisos de IAM necesarios para los](https://docs.aws.amazon.com/glue/latest/ug/setting-up.html#getting-started-min-privs-job) trabajos de ETL. 

 las conexiones de `SNOWFLAKE` en AWS Glue utilizan un secreto de AWS Secrets Manager para proporcionar información sobre las credenciales. Sus roles de vista previa de datos y trabajos en AWS Glue Studio deben tener permiso para leer este secreto.

## Agregar un destino de datos de Snowflake
<a name="creating-snowflake-target-node-add"></a>

**Crear de un nodo de destino de Snowflake:**

1.  Elija una tabla Snowflake existente como destino o ingrese un nombre de tabla nuevo. 

1.  Al utilizar el nodo **destino de datos: Snowflake**, puede elegir entre las siguientes opciones: 
   +  **APPEND**: si ya existe una tabla, coloque todos los datos nuevos en la tabla como un inserto. Si la tabla no existe, créela y, a continuación, inserte todos los datos nuevos. 
   +  **MERGE**: AWS Glue actualizará o anexará datos a la tabla de destino en función de las condiciones que especifique. 

      Elija opciones: 
     + **Elegir claves y acciones sencillas**: elija las columnas que se usarán como claves de coincidencia entre los orígenes de datos y el conjunto de destinos de datos. 

       Especifique las siguientes opciones cuando coincidan:
       + Actualice el registro del conjunto de datos de destino con los datos de origen.
       + Elimine el registro del conjunto de datos de destino.

       Especifique las siguientes opciones cuando no coincidan:
       + Inserte los datos de origen como una nueva fila en el conjunto de datos de destino.
       + No hacer nada.
     + **Ingrese una instrucción MERGE personalizada**: a continuación, puede elegir **Validar la instrucción MERGE** para comprobar si la instrucción es válida o no.
   +  **TRUNCATE**: si ya existe una tabla, trunque los datos de la tabla al borrar primero el contenido de la tabla de destino. Si el truncado se realiza correctamente, inserte todos los datos. Si la tabla no existe, créela y, a continuación, inserte todos los datos. Si el truncado no es exitoso, la operación producirá un error. 
   +  **DROP**: si una tabla ya existe, elimine los metadatos y los datos de la tabla. Si el borrado se realiza correctamente, inserte todos los datos. Si la tabla no existe, créela y, a continuación, inserte todos los datos. Si el descarte no es exitoso, la operación producirá un error. 

## Opciones avanzadas
<a name="creating-snowflake-connection-advanced-options"></a>

Consulte las [conexiones de Snowflake](https://docs.aws.amazon.com//glue/latest/dg/aws-glue-programming-etl-connect-snowflake-home.html) en la guía para desarrolladores de AWS Glue. 