Configuración de Snowflake en una actividad de copia
En este artículo se describe cómo usar la actividad de copia en la canalización de datos para copiar datos desde y hacia Snowflake.
Configuración admitida
Para la configuración de cada pestaña en la actividad de copia, vaya a las secciones siguientes respectivamente.
General
Consulte las instruccionesgenerales para configurar la pestaña de parámetros General.
Source
Las siguientes propiedades son compatibles con Snowflake en la pestaña Origen de una actividad de copia.
Se requieren las siguientes propiedades:
- Tipo de almacén de datos: Seleccione Externo.
- Conexión: Seleccione una conexión de Snowflake en la lista de conexiones. Si la conexión no existe, cree una nueva conexión de Snowflake seleccionando Nuevo.
- Base de datos: la base de datos predeterminada que se va a usar una vez conectado. Debe ser una base de datos existente para la que el rol especificado tenga privilegios.
- Usar consulta: puede elegir Tabla o Consulta como consulta de uso. La siguiente lista describe la configuración de cada opción.
- Tabla: seleccione la tabla de la base de datos en la lista desplegable. O bien, active Editar para escribir el nombre de la tabla manualmente.
- Consulta: especifique la consulta SQL para leer los datos desde Snowflake. Si los nombres del esquema, la tabla y las columnas contienen minúsculas, indique el identificador de objeto en la consulta, por ejemplo,
select * from "schema"."myTable"
.
En Avanzado, puede especificar los campos siguientes:
Integración del almacenamiento: Especifica el nombre de la integración de almacenamiento que creó en Snowflake. Para conocer los pasos previos del uso de la integración de almacenamiento, consulta Configuración de una integración de almacenamiento de Snowflake.
Opciones adicionales de copia de Snowflake: especifique opciones de copia de Snowflake adicionales que se usarán en la instrucción COPY de Snowflake para cargar datos. Se proporcionan opciones de copia adicionales, como un diccionario de pares clave-valor. Ejemplos: MAX_FILE_SIZE, OVERWRITE. Para obtener más información consulte el documento sobre las opciones de copia de Snowflake.
Opciones adicionales de formato de Snowflake: especifique opciones de formato de Snowflake adicionales que se usarán en la instrucción COPY de Snowflake para cargar datos. Se proporcionan opciones de formato de archivo adicionales al comando COPY, que se proporciona como un diccionario de pares clave-valor. Ejemplos: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT. Para obtener más información consulte opciones de tipo de formato de Snowflake.
Copia directa desde Snowflake
Si el almacén de datos y el formulario del destino cumplen los criterios descritos en esta sección, puede usar la actividad de copia para copiar directamente de Snowflake al destino. El servicio comprueba la configuración y produce un error en la ejecución de la actividad de copia si no se cumplen los siguientes criterios:
Al especificar Integración del almacenamiento en el origen, el almacén de datos de destino es el almacenamiento Azure Blob Storage al que se hace referencia en la fase externa de Snowflake. Debes completar los pasos siguientes antes de copiar datos:
Cree una conexión de Azure Blob Storage para el destino de Azure Blob Storage con los tipos de autenticación admitidos.
Conceda al menos el rol de Colaborador de datos de blobs de almacenamiento a la entidad de servicio de Snowflake en el destino de Azure Blob Storage Access Control (IAM).
Cuando no especifique Integración del almacenamiento en el origen:
El servicio vinculado al destino es Azure Blob Storage con la autenticación de la firma de acceso de recurso compartido. Si quiere copiar los datos directamente en Azure Data Lake Storage Gen2 en el siguiente formato admitido, puede crear una conexión de Azure Blob Storage con la autenticación de SAS en la cuenta de Azure Data Lake Storage Gen2, para evitar el uso de una copia almacenada provisionalmente desde Snowflake.
El formato de datos de destino es Parquet, DelimitedText o JSON con las siguientes configuraciones:
- Para el formato Parquet, el códec de compresión es None, Snappy, o Lzo.
- Para el formato DelimitedText:
- El Delimitador de fila es \r\n o cualquier carácter individual.
- El Tipo de compresión puede ser None, gzip, bzip2 o deflate.
- La Codificación se deja como valor predeterminado o se establece en UTF-8.
- El carácter de comilla es comillas dobles, comillas simples o Sin comillas.
- Para el formato JSON, la copia directa solo admite el caso en que el resultado de la consulta o la tabla Snowflake de origen solo tiene una columna y el tipo de datos de esta columna es VARIANT, OBJECT o ARRAY.
- El Tipo de compresión puede ser None, gzip, bzip2 o deflate.
- La Codificación se deja como valor predeterminado o se establece en UTF-8.
- El patrón de archivo en el destino de la actividad de copia se deja como predeterminado o se establece en Conjunto de objetos.
En el origen de la actividad de copia, no se especifican Columnas adicionales.
No se ha especificado la asignación de columnas.
Copia almacenada provisionalmente desde Snowflake
Cuando el formato o el almacén de datos de destino no sea compatible de forma nativa con el comando COPY de Snowflake, como se mencionó en la última sección, habilite la copia preconfigurada integrada con una instancia intermedia de Azure Blob Storage. La característica de copia almacenada provisionalmente también proporciona un mejor rendimiento. El servicio exporta datos de Snowflake al almacenamiento provisional, copia los datos en el destino y, por último, limpia los datos temporales del almacenamiento provisional.
Para utilizar esta característica, cree una conexión de Azure Blob Storage que haga referencia a la cuenta de Azure Storage como almacenamiento provisional temporal. A continuación, vaya a la pestaña Configuración para configurar los valores de almacenamiento provisional. Debe seleccionar Externo para configurar la conexión de almacenamiento provisional de Azure Blob Storage.
Al especificar Integración del almacenamiento en el origen, el almacenamiento provisional de Azure Blob Storage debe ser el que se hace referencia en la fase externa de Snowflake. Asegúrese de crear una conexión de Azure Blob Storage con cualquier autenticación admitida y conceda al menos el rol de Colaborador de datos de blobs de almacenamiento a la entidad de servicio de Snowflake en el almacenamiento provisional de Azure Blob Storage Access Control (IAM). Se requiere la ruta de acceso de almacenamiento en Configuración de almacenamiento en la pestaña Configuración.
Cuando no se especifica Integración del almacenamiento en el origen, la conexión de almacenamiento provisional de Azure Blob Storage debe usar la autenticación de firma de acceso compartido, según lo requiera el comando COPY de Snowflake. Asegúrate de conceder el permiso de acceso adecuado a Snowflake en el almacenamiento provisional de Azure Blob Storage. Para más información sobre esto, consulte este artículo.
Destino
Las siguientes propiedades son compatibles con Snowflake en la pestaña de Destino de una actividad de copia.
Se requieren las siguientes propiedades:
- Tipo de almacén de datos: Seleccione Externo.
- Conexión: Seleccione una conexión de Snowflake en la lista de conexiones. Si la conexión no existe, cree una nueva conexión de Snowflake seleccionando Nuevo.
- Base de datos: la base de datos predeterminada que se va a usar una vez conectado. Debe ser una base de datos existente para la que el rol especificado tenga privilegios.
- Tabla: seleccione la tabla de la base de datos en la lista desplegable. O bien, active Editar para escribir el nombre de la tabla manualmente.
En Avanzado, puede especificar los campos siguientes:
Script de copia previa: especifique un script para que la actividad de copia se ejecute antes de escribir datos en una tabla de destino en cada ejecución. Puede usar esta propiedad para limpiar los datos cargados previamente.
Integración del almacenamiento: Especifica el nombre de la integración de almacenamiento que creó en Snowflake. Para conocer los pasos previos del uso de la integración de almacenamiento, consulta Configuración de una integración de almacenamiento de Snowflake.
Opciones adicionales de copia de Snowflake: especifique opciones de copia de Snowflake adicionales que se usarán en la instrucción COPY de Snowflake para cargar datos. Se proporcionan opciones de copia adicionales, como un diccionario de pares clave-valor. Ejemplos: ON_ERROR, FORCE, LOAD_UNCERTAIN_FILES. Para obtener más información, consulte el documento sobre las opciones de copia de Snowflake.
Opciones adicionales de formato de Snowflake: especifique opciones de formato de Snowflake adicionales que se usarán en la instrucción COPY de Snowflake para cargar datos. Se proporcionan opciones de formato de archivo adicionales al comando COPY, que se proporciona como un diccionario de pares clave-valor. Ejemplos: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT. Para obtener más información consulte opciones de tipo de formato de Snowflake.
Copia directa a Snowflake
Si el almacén de datos y el formulario de origen cumplen los criterios descritos en esta sección, puede usar la actividad de copia para copiar directamente desde el origen a Snowflake. El servicio comprueba la configuración y produce un error en la ejecución de la actividad de copia si no se cumplen los siguientes criterios:
Al especificar la Integración del almacenamiento en el destino:
El almacén de datos de origen es la instancia de Azure Blob Storage a la que se hace referencia en la fase externa de Snowflake. Debes completar los pasos siguientes antes de copiar datos:
Cree una conexión de Azure Blob Storage para el origen de Azure Blob Storage con los tipos de autenticación admitidos.
Concede al menos el rol de Lector de datos de blobs de almacenamiento a la entidad de servicio de Snowflake en el origen de Azure Blob Storage Access Control (IAM).
Cuando no especifique Integración del almacenamiento en el destino:
La conexión de origen es Azure Blob Storage con la autenticación de la firma de acceso de recurso compartido. Si quiere copiar los datos directamente desde Azure Data Lake Storage Gen2 en el siguiente formato admitido, puede crear una conexión de Azure Blob Storage con la autenticación de SAS en la cuenta de Azure Data Lake Storage Gen2, para evitar el uso de una copia almacenada provisionalmente desde Snowflake.
El formato de datos de origen es Parquet, DelimitedText o JSON con las siguientes configuraciones:
Para el formato Parquet, el códec de compresión es None o Snappy.
Para el formato DelimitedText:
- El Delimitador de fila es \r\n o cualquier carácter individual. Si el delimitador de fila no es "\r\n", la Primera fila como encabezado no está seleccionada y no se especifica Omitir recuento de líneas.
- El Tipo de compresión puede ser None, gzip, bzip2 o deflate.
- Codificación se deja como valor predeterminado o se establece en "UTF-8", "UTF-16", "UTF-16BE", "UTF-32", "UTF-32BE", "BIG5", "EUC-JP", "EUC-KR", "GB18030", "ISO-2022-JP", "ISO-2022-KR", "ISO-8859-1", "ISO-8859-2", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7", "ISO-8859-8", "ISO-8859-9", "WINDOWS-1250", "WINDOWS-1251", "WINDOWS-1252", "WINDOWS-1253", "WINDOWS-1254", "WINDOWS-1255".
- El carácter de comilla es comillas dobles, comillas simples o Sin comillas.
Para el formato JSON, la copia directa solo admite el caso en que la tabla de Snowflake de destino solo tiene una columna y el tipo de datos de esta columna es VARIANT, OBJECT o ARRAY.
- El Tipo de compresión puede ser None, gzip, bzip2 o deflate.
- La Codificación se deja como valor predeterminado o se establece en UTF-8.
- No se ha especificado la asignación de columnas.
En el origen de la actividad de copia:
- No se especifican columnas adicionales.
- Si el origen es una carpeta, se selecciona Recursivamente .
- No se especifican Prefijos, Hora de inicio (UTC) y Hora de finalización (UTC) en Filtro por última modificación y Habilitar detección de particiones.
Copia almacenada provisionalmente en Snowflake
Cuando el formato o el almacén de datos de origen no sea compatible de forma nativa con el comando COPY de Snowflake, como se mencionó en la última sección, habilite la copia preconfigurada integrada con una instancia intermedia de Azure Blob Storage. La característica de copia almacenada provisionalmente también proporciona un mejor rendimiento. El servicio convierte automáticamente los datos para satisfacer los requisitos del formato de datos de Snowflake. A continuación, invoca el comando COPY para cargar datos en Snowflake. Por último, limpia los datos temporales del almacenamiento de blobs.
Para utilizar esta característica, cree una conexión de Azure Blob Storage que haga referencia a la cuenta de Azure Storage como almacenamiento provisional temporal. A continuación, vaya a la pestaña Configuración para configurar los valores de almacenamiento provisional. Debe seleccionar Externo para configurar la conexión de almacenamiento provisional de Azure Blob Storage.
Al especificar Integración del almacenamiento en el destino, el almacenamiento provisional de Azure Blob Storage debe ser el que se hace referencia en la fase externa de Snowflake. Asegúrese de crear una conexión de Azure Blob Storage con cualquier autenticación admitida y concede al menos el rol de Lector de datos de blobs de almacenamiento a la entidad de servicio de Snowflake en el almacenamiento provisional de Azure Blob Storage Access Control (IAM). Se requiere la ruta de acceso de almacenamiento en Configuración de almacenamiento en la pestaña Configuración.
Cuando no se especifica Integración del almacenamiento en el destino, la conexión de almacenamiento provisional de Azure Blob Storage debe usar la autenticación de firma de acceso compartido, según lo requiera el comando COPY de Snowflake.
Asignación
Para la configuración de la pestañaAsignación, vaya a Configurar las asignaciones en la ficha Asignación .
Configuración
Para la configuración de la pestañaConfiguración, vaya a Configurar los otros parámetros en la ficha Configuración .
Resumen de tabla
Las tablas siguientes contienen más información sobre la actividad de copia en Snowflake.
Source
Nombre | Descripción | Value | Obligatorio | Propiedad de script JSON |
---|---|---|---|---|
Tipo de almacén de datos | El tipo de almacén de datos. | Externo | Sí | / |
Connection | La conexión al almacén de datos de origen. | < su conexión > | Sí | conexión |
Base de datos | La base de datos que usa como origen. | < su base de datos > | Sí | database |
Usar consulta | La manera de leer datos de Snowflake. | • Tabla • Consulta |
No | • tabla • consulta |
Tabla | El nombre de la tabla para leer los datos. | < nombre de la tabla de origen> | Sí | esquema table |
Consultar | La consulta SQL para leer datos de Snowflake. | < nombre de la consulta de origen> | Sí | consulta |
Integración del almacenamiento | Especifica el nombre de la integración de almacenamiento que creó en Snowflake. Para conocer los pasos previos del uso de la integración de almacenamiento, consulta Configuración de una integración de almacenamiento de Snowflake. | < su integración del almacenamiento > | No | storageIntegration |
Opciones adicionales de copia de Snowflake | Opciones de copia adicionales, proporcionadas como un diccionario de pares clave-valor. Ejemplos: MAX_FILE_SIZE, OVERWRITE. Para obtener más información consulte el documento sobre las opciones de copia de Snowflake. | • Nombre • Valor |
No | additionalCopyOptions |
Opciones de formato de Snowflake adicionales | Opciones adicionales de formato de archivo que se proporcionan al comando COPY como un diccionario de pares clave-valor. Ejemplos: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT. Para obtener más información consulte opciones de tipo de formato de Snowflake. | • Nombre • Valor |
No | additionalFormatOptions |
Destino
Nota:
Aunque las instancias que no son de Azure Snowflake son compatibles con el origen, solo se admiten actualmente instancias de Azure Snowflake para destinos de Snowflake (también denominados receptores en Azure Data Factory).
Nombre | Descripción | Value | Obligatorio | Propiedad de script JSON |
---|---|---|---|---|
Tipo de almacén de datos | El tipo de almacén de datos. | Externo | Sí | / |
Connection | La conexión al almacén de datos de destino. | < su conexión > | Sí | conexión |
Base de datos | La base de datos que se usa como destino. | <su base de datos> | Sí | / |
Tabla | La tabla de datos de destino. | < nombre de la tabla de destino> | Sí | • esquema • tabla |
Pre-copy script (Script anterior a la copia) | Una consulta SQL para que la actividad de copia se ejecute antes de escribir datos en Snowflake en cada ejecución. Esta propiedad se usa para limpiar los datos cargados previamente. | <su script anterior a la copia> | NO | preCopyScript |
Integración del almacenamiento | Especifica el nombre de la integración de almacenamiento que creó en Snowflake. Para conocer los pasos previos del uso de la integración de almacenamiento, consulta Configuración de una integración de almacenamiento de Snowflake. | < su integración del almacenamiento > | No | storageIntegration |
Opciones adicionales de copia de Snowflake | Opciones de copia adicionales, proporcionadas como un diccionario de pares clave-valor. Ejemplos: ON_ERROR, FORCE, LOAD_UNCERTAIN_FILES. Para obtener más información, consulte el documento sobre las opciones de copia de Snowflake. | • Nombre • Valor |
No | additionalCopyOptions |
Opciones de formato de Snowflake adicionales | Opciones de formato de archivo adicionales que se proporcionan al comando COPY, que se proporciona como un diccionario de pares clave-valor. Ejemplos: DATE_FORMAT, TIME_FORMAT, TIMESTAMP_FORMAT. Para obtener más información consulte opciones de tipo de formato de Snowflake. | • Nombre • Valor |
No | additionalFormatOptions |