Compartir a través de


Configura Snowflake en la actividad de copia

En este artículo se describe cómo usar la actividad de copia en una canalización 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
  • Origen
  • Destino
  • Mapeo
  • Configuración

General

Consulte las instruccionesgenerales para configurar la pestaña de parámetros General.

Source

Las siguientes propiedades son admitidas por Snowflake en la pestaña Origen de una actividad de copia.

Captura de pantalla que muestra la pestaña de origen y la lista de propiedades.

Se requieren las siguientes propiedades:

  • 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.

    • Propiedades de conexión adicionales: especifique las propiedades de conexión adicionales que se usarán en la conexión de Snowflake para establecer opciones avanzadas. Las propiedades de conexión adicionales se proporcionan como un diccionario de pares clave-valor, por ejemplo, Role. Para obtener más información, consulte este artículo.

      Captura de pantalla que muestra propiedades de conexión adicionales para el origen.

  • 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, .

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 en forma de un diccionario de pares clave-valor. Los ejemplos son: MAX_FILE_SIZE, OVERWRITE. Para obtener más información consulte el documento sobre las opciones de copia de Snowflake.

    Captura de pantalla que muestra opciones adicionales de copia en Snowflake para la fuente.

  • 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.

    Captura de pantalla que muestra opciones adicionales de formato de origen en Snowflake.

Copia directa desde Snowflake

Si el almacén de datos de destino y el formato cumplen los criterios descritos en esta sección, puede usar el actividad de copia para copiar directamente desde Snowflake al destino. El servicio comprueba la configuración y produce un error en la ejecución del actividad de copia si no se cumplen los siguientes criterios:

  • Al especificar la integración de Storage en el origen: el almacén de datos de destino es el Azure Blob Storage al que se hace referencia en la fase externa de Snowflake. Debes completar los pasos siguientes antes de copiar datos:

    1. Cree una conexión Azure Blob Storage para el destino Azure Blob Storage con cualquier tipo de autenticación compatible, excepto la autenticación de la cuenta de organización.

    2. Otorgue al menos el rol de Storage Blob Data Contributor a la entidad de servicio de Snowflake en el Control de acceso (IAM) del Azure Blob Storage de destino.

  • Cuando no especificas integración de almacenamiento en el origen:

    La conexión de destino es Azure Blob Storage con autenticación mediante firma de acceso compartido. Si desea copiar directamente datos en Azure Data Lake Storage Gen2 en el siguiente formato compatible, puede crear una conexión de Azure Blob Storage con autenticación SAS en su cuenta de Azure Data Lake Storage Gen2, para evitar usar copia sin procesar 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 único.
      • 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 puede ser: 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 son compatibles de forma nativa con el comando COPY de Snowflake, como se mencionó en la última sección, habilite la copia preconfigurada integrada mediante una instancia provisional de Blob Storage Azure. La característica de copia escalonada también proporciona un mejor rendimiento. El servicio exporta datos de Snowflake al almacenamiento de transición, copia los datos al destino y, finalmente, elimina tus datos temporales del almacenamiento de transición.

Para usar esta característica, cree una conexión Azure Blob Storage que haga referencia a la cuenta de almacenamiento Azure como almacenamiento provisional. A continuación, vaya a la pestaña Configuración para configurar los valores de almacenamiento provisional. Debe seleccionar External para configurar la conexión de almacenamiento provisional de Azure Blob Storage.

  • Al especificar Storage integration en el origen, el almacenamiento provisional de Azure Blob debe ser el que se hace referencia en la etapa externa de Snowflake. Asegúrese de crear una conexión con Azure Blob Storage utilizando cualquier método de autenticación admitido y asigne al menos el rol de Storage Blob Data Contributor a la entidad de servicio Snowflake en el Access Control (IAM) del Azure Blob Storage de ensayo. Se requiere la ruta de acceso de almacenamiento en Configuración de almacenamiento en la pestaña Configuración.

  • Cuando no especifique Storage integration en el origen, la conexión de ensayo Azure Blob Storage debe usar la autenticación de firma de acceso compartido, según lo requiera el comando Snowflake COPY. Asegúrese de conceder el permiso de acceso adecuado a Snowflake en el Azure Blob Storage de ensayo. 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.

Captura de pantalla que muestra la pestaña de destino.

Se requieren las siguientes propiedades:

  • 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.

    • Propiedades de conexión adicionales: especifique las propiedades de conexión adicionales que se usarán en la conexión de Snowflake para establecer opciones avanzadas. Las propiedades de conexión adicionales se proporcionan como un diccionario de pares clave-valor, por ejemplo, Role. Para obtener más información, consulte este artículo.

      Captura de pantalla que muestra propiedades de conexión adicionales para el destino.

  • 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 si fuera un diccionario de parejas 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.

    Captura de pantalla que muestra las opciones adicionales de copia en Snowflake para el destino.

  • 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. Las opciones de formato de archivo adicionales proporcionadas al comando COPY se ofrecen 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.

    Captura de pantalla que muestra opciones adicionales de formato de Snowflake para el destino.

Copiar directamente a Snowflake

Si el almacén de datos de origen y el formato cumplen los criterios descritos en esta sección, puede usar el 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 del actividad de copia si no se cumplen los siguientes criterios:

  • Al especificar la integración de almacenamiento en el destino:

    El almacén de datos de origen es el Azure Blob Storage al que se hace referencia en la fase externa de Snowflake. Debes completar los pasos siguientes antes de copiar datos:

    1. Cree una conexión Azure Blob Storage para el Azure Blob Storage de origen mediante cualquier tipo de autenticación compatible, excepto la autenticación de la cuenta de organización.

    2. Asigne el rol Storage Blob Data Reader al menos a la entidad de servicio de Snowflake en el Almacenamiento de Blobs de Azure (IAM) Control de Acceso de origen.

  • Cuando no especifica la integración de almacenamiento en el destino:

    La conexión de origen es Azure Blob Storage con autenticación con firma de acceso compartido. Si desea copiar directamente datos de Azure Data Lake Storage Gen2 en uno de los formatos compatibles siguientes, puede crear una conexión de Azure Blob Storage mediante autenticación SAS para su cuenta de Azure Data Lake Storage Gen2, sin utilizar staged copy en 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 único. Si el delimitador de fila no es "\r\n", la primera fila como encabezado está deseleccionada y no se especifica el número de líneas a omitir.
      • 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, selecciona Recursividad.
    • 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 almacén de datos de origen o el formato no son compatibles de forma nativa con el comando COPY de Snowflake, como se mencionó en la última sección, habilite la copia preconfigurada integrada mediante una instancia provisional Azure Blob Storage. La función de copia escalonada también proporciona un mejor rendimiento de procesamiento. 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 usar esta característica, cree una conexión Azure Blob Storage que haga referencia a la cuenta de almacenamiento Azure como almacenamiento provisional. A continuación, vaya a la pestaña Configuración para configurar la configuración de etapa. Debe seleccionar External para configurar la conexión de almacenamiento provisional de Azure Blob Storage.

  • Al especificar Storage integration en el destino, el Azure Blob Storage provisional debe ser el que se referencia en la etapa externa de Snowflake. Asegúrese de crear una conexión Azure Blob Storage para ella con cualquier autenticación admitida y otorgue como mínimo el rol Storage Blob Data Reader a la entidad de servicio Snowflake en el Azure Blob Storage Control de Acceso (IAM) de preparación. Se requiere la ruta de acceso de almacenamiento bajo la configuración de preparación en la pestaña Configuración.

  • Cuando no se especifica Storage integration en el destino, la conexión intermediaria de Azure Blob Storage debe utilizar la autenticación de firma de acceso compartido, tal como lo requiere el comando COPY de Snowflake.

Mapeo

Para la configuración de la pestaña Asignación, vaya a Configurar sus asignaciones en la pestaña Asignación.

Configuración

Para la configuración de la pestaña Configuración, vaya a configurar las otras configuraciones en la ficha Configuración.

Asignación de tipos de datos para Snowflake

Al copiar datos de Snowflake, se utilizan las siguientes asignaciones de tipos de datos de Snowflake a tipos de datos provisionales que el servicio utiliza internamente.

Tipo de datos Snowflake Tipo de datos de servicio provisional
NÚMERO (p,0) Decimal
NUMBER (p,s donde es0) Decimal
FLOTAR Double
VARCHAR String
CHAR String
BINARY Byte[]
BOOLEAN Boolean
DATE DateTime
TIME TimeSpan
TIMESTAMP_LTZ DateTimeOffset
TIMESTAMP_NTZ DateTimeOffset
TIMESTAMP_TZ DateTimeOffset
VARIANT String
OBJECT String
ARRAY String

Resumen de tabla

Las tablas siguientes contienen más información sobre la actividad de copia en Snowflake.

Source

Nombre Descripción Valor Obligatorio Propiedad del script de JSON
Conexión Tu conexión al almacén de datos de origen. su conexión conexión
Propiedades de conexión adicionales Propiedades de conexión adicionales, proporcionadas como un diccionario de pares clave-valor, por ejemplo, Role. Para obtener más información, consulte este artículo. • Nombre
• Valor
No propiedadesDeConexión
Base de datos La base de datos que usted usa como origen. su base de datos base de datos
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 esquema
tabla
Consulta La consulta SQL para leer datos de Snowflake. nombre de la consulta de origen query
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 Integración de almacenamiento
Opciones adicionales de copia de Snowflake Opciones de copia adicionales, proporcionadas como un diccionario de asociaciones 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 opciones adicionales de copia
Opciones adicionales de formato de Snowflake Opciones adicionales de formato de archivo que se proporcionan al comando COPY como un diccionario de parejas de clave y 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 opcionesAdicionalesDeFormato

Destino

Nota:

Aunque las instancias de Snowflake que no son de Azure son compatibles como origen, actualmente solo se admiten instancias de Snowflake de Azure para destinos de Snowflake (también denominados destinos en Azure Data Factory).

Nombre Descripción Valor Obligatorio Propiedad del script de JSON
Conexión Su conexión al almacén de datos de destino. su conexión conexión
Propiedades de conexión adicionales Propiedades de conexión adicionales, proporcionadas como un diccionario de pares clave-valor, por ejemplo, Role. Para obtener más información, consulte este artículo. • Nombre
• Valor
No propiedadesDeConexión
Base de datos La base de datos que se usa como destino. su base de datos /
Tabla La tabla de datos de destino. nombre de su tabla de destino • esquema
• tabla
Pre-copy script (Script anterior a la copia) Consulta SQL para que el 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 opcionesAdicionalesDeCopiado
Opciones adicionales de formato de Snowflake Opciones de formato de archivo adicionales proporcionadas 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 opcionesAdicionalesDeFormato
  • Introducción al conector de Snowflake