Configurar o Snowflake em uma atividade de cópia
Este artigo descreve como usar a atividade de cópia no pipeline de dados para copiar dados de e para o Snowflake.
Configuração suportada
Para a configuração de cada guia em atividade de cópia, vá para as seções a seguir, respectivamente.
- General (Geral)
- Source
- Destino
- Mapeamento
- Definições
Geral
Consulte as orientações de configurações gerais para configurar a guia Configurações gerais.
Origem
As propriedades a seguir são suportadas para Snowflake na guia Origem de uma atividade de cópia.
As seguintes propriedades são necessárias:
- Tipo de armazenamento de dados: Selecione Externo.
- Conexão: Selecione uma conexão Snowflake na lista de conexões. Se a conexão não existir, crie uma nova conexão Snowflake selecionando Novo.
- Banco de dados: o banco de dados padrão a ser usado uma vez conectado. Deve ser um banco de dados existente para o qual a função especificada tenha privilégios.
- Usar consulta: você pode escolher Tabela ou Consulta como sua consulta de uso. A lista a seguir descreve a configuração de cada configuração.
- Tabela: Selecione a tabela em seu banco de dados na lista suspensa. Ou marque Editar para inserir o nome da tabela manualmente.
- Consulta: especifique a consulta SQL para ler dados do Snowflake. Se os nomes do esquema, da tabela e das colunas contiverem minúsculas, cite o identificador do objeto na consulta, por exemplo.
select * from "schema"."myTable"
Em Avançado, você pode especificar os seguintes campos:
Integração de armazenamento: especifique o nome da integração de armazenamento que você criou no Snowflake. Para obter as etapas de pré-requisito de uso da integração de armazenamento, consulte Configurando uma integração de armazenamento Snowflake.
Opções adicionais de cópia do Snowflake: especifique opções adicionais de cópia do Snowflake que serão usadas na instrução Snowflake COPY para carregar dados. Opções de cópia adicionais são fornecidas como um dicionário de pares chave-valor. Exemplos: MAX_FILE_SIZE, OVERWRITE. Para obter mais informações, consulte Opções de cópia do floco de neve.
Opções adicionais de formato Snowflake: especifique opções adicionais de formato Snowflake, que serão usadas na instrução Snowflake COPY para carregar dados. Opções de formato de arquivo adicionais fornecidas ao comando COPY são fornecidas como um dicionário de pares chave-valor. Exemplos: DATE_FORMAT, TIME_FORMAT TIMESTAMP_FORMAT. Para obter mais informações, consulte Opções de tipo de formato Snowflake.
Cópia direta de Snowflake
Se o armazenamento e o formato de dados de destino atenderem aos critérios descritos nesta seção, você poderá usar a atividade Copiar para copiar diretamente do Snowflake para o destino. O serviço verifica as configurações e falha na execução da atividade Copiar se os seguintes critérios não forem atendidos:
Quando você especifica a integração de armazenamento na origem: o armazenamento de dados de destino é o Armazenamento de Blob do Azure que você mencionou no estágio externo no Snowflake. Você precisa concluir as seguintes etapas antes de copiar dados:
Crie uma conexão de Armazenamento de Blob do Azure para o Armazenamento de Blob do Azure de destino com qualquer tipo de autenticação suportado.
Conceda pelo menos a função de Colaborador de Dados de Blob de Armazenamento à entidade de serviço Snowflake no IAM (Controle de Acesso ao Armazenamento de Blob) do Azure de destino.
Quando você não especifica a integração de armazenamento na origem:
A conexão de destino é o armazenamento de Blob do Azure com autenticação de assinatura de acesso compartilhado. Se quiser copiar dados diretamente para o Azure Data Lake Storage Gen2 no seguinte formato suportado, você pode criar uma conexão de Armazenamento de Blob do Azure com autenticação SAS em sua conta do Azure Data Lake Storage Gen2, para evitar o uso de cópia em estágios do Snowflake.
O formato de dados de destino é Parquet, DelimitedText ou JSON com as seguintes configurações:
- Para o formato Parquet , o codec de compressão é None, Snappy ou Lzo.
- Para o formato DelimitedText :
- O delimitador de linha é \r\n ou qualquer caractere único.
- O tipo de compressão pode ser None, gzip, bzip2 ou deflate.
- A codificação é deixada como padrão ou definida como UTF-8.
- O caractere de aspas é Aspas duplas, Aspas simples ou Sem aspas.
- Para o formato JSON, a cópia direta suporta apenas o caso de a tabela Snowflake de origem ou o resultado da consulta ter apenas uma coluna e o tipo de dados dessa coluna ser VARIANT, OBJECT ou ARRAY.
- O tipo de compressão pode ser None, gzip, bzip2 ou deflate.
- A codificação é deixada como padrão ou definida como UTF-8.
- O padrão de arquivo no destino da atividade de cópia é deixado como padrão ou definido como Conjunto de objetos.
Na fonte da atividade de cópia, as colunas adicionais não são especificadas.
O mapeamento de colunas não é especificado.
Cópia encenada de Snowflake
Quando o armazenamento ou formato de dados de destino não for nativamente compatível com o comando COPY do Snowflake, conforme mencionado na última seção, habilite a cópia em estágios interna usando uma instância provisória de armazenamento de Blob do Azure. O recurso de cópia em estágios também oferece uma melhor taxa de transferência. O serviço exporta dados do Snowflake para o armazenamento de preparo, copia os dados para o destino e, finalmente, limpa os dados temporários do armazenamento de preparação.
Para usar esse recurso, crie uma conexão de armazenamento de Blob do Azure que se refira à conta de armazenamento do Azure como o preparo provisório. Em seguida, vá para a guia Configurações para definir suas configurações de preparação. Você precisa selecionar Externo para configurar a conexão de preparo do Armazenamento de Blobs do Azure.
Quando você especifica a integração de Armazenamento na origem, o Armazenamento de Blob do Azure de preparo provisório deve ser aquele que você mencionou no estágio externo no Snowflake. Certifique-se de criar uma conexão de Armazenamento de Blob do Azure para ele com qualquer autenticação com suporte e conceda pelo menos a função de Colaborador de Dados de Blob de Armazenamento à entidade de serviço Snowflake no Controle de Acesso de Armazenamento de Blob (IAM) do Azure de preparação. O caminho de armazenamento em Configurações de preparo na guia Configurações é obrigatório.
Quando você não especifica a integração de armazenamento na origem, a conexão de armazenamento de Blob do Azure de preparo deve usar a autenticação de assinatura de acesso compartilhado, conforme exigido pelo comando Snowflake COPY. Certifique-se de conceder permissão de acesso adequada ao Snowflake no Armazenamento de Blobs do Azure de preparação. Para saber mais sobre isso, consulte este artigo.
Destino
As propriedades a seguir são suportadas para Snowflake na guia Destino de uma atividade de cópia.
As seguintes propriedades são necessárias:
- Tipo de armazenamento de dados: Selecione Externo.
- Conexão: Selecione uma conexão Snowflake na lista de conexões. Se a conexão não existir, crie uma nova conexão Snowflake selecionando Novo.
- Banco de dados: o banco de dados padrão a ser usado uma vez conectado. Deve ser um banco de dados existente para o qual a função especificada tenha privilégios.
- Tabela: Selecione a tabela em seu banco de dados na lista suspensa. Ou marque Editar para inserir o nome da tabela manualmente.
Em Avançado, você pode especificar os seguintes campos:
Script de pré-cópia: especifique um script para a Atividade de cópia ser executada antes de gravar dados na tabela de destino em cada execução. Você pode usar essa propriedade para limpar os dados pré-carregados.
Integração de armazenamento: especifique o nome da integração de armazenamento que você criou no Snowflake. Para obter as etapas de pré-requisito de uso da integração de armazenamento, consulte Configurando uma integração de armazenamento Snowflake.
Opções adicionais de cópia do Snowflake: especifique opções adicionais de cópia do Snowflake, que serão usadas na instrução Snowflake COPY para carregar dados. Opções de cópia adicionais são fornecidas como um dicionário de pares chave-valor. Exemplos: ON_ERROR, FORCE, LOAD_UNCERTAIN_FILES. Para obter mais informações, consulte Opções de cópia do floco de neve.
Opções adicionais de formato Snowflake: especifique opções adicionais de formato Snowflake, que serão usadas na instrução Snowflake COPY para carregar dados. Opções de formato de arquivo adicionais fornecidas ao comando COPY são fornecidas como um dicionário de pares chave-valor. Exemplos: DATE_FORMAT, TIME_FORMAT TIMESTAMP_FORMAT. Para obter mais informações, consulte Opções de tipo de formato Snowflake.
Cópia direta para Snowflake
Se o armazenamento e o formato de dados de origem atenderem aos critérios descritos nesta seção, você poderá usar a atividade Copiar para copiar diretamente da fonte para o Snowflake. O serviço verifica as configurações e falha na execução da atividade Copiar se os seguintes critérios não forem atendidos:
Quando você especifica a integração de armazenamento no destino:
O armazenamento de dados de origem é o Armazenamento de Blob do Azure que você mencionou no estágio externo no Snowflake. Você precisa concluir as seguintes etapas antes de copiar dados:
Crie uma conexão de Armazenamento de Blob do Azure para o Armazenamento de Blobs do Azure de origem com qualquer tipo de autenticação suportado.
Conceda pelo menos a função de Leitor de Dados de Blob de Armazenamento à entidade de serviço Snowflake no IAM (Controle de Acesso de Armazenamento de Blob) do Azure de origem.
Quando você não especificar a integração de armazenamento no destino:
A conexão de origem é o armazenamento de Blob do Azure com autenticação de assinatura de acesso compartilhado. Se quiser copiar diretamente os dados do Azure Data Lake Storage Gen2 no seguinte formato suportado, você pode criar uma conexão de Armazenamento de Blob do Azure com autenticação SAS em sua conta do Azure Data Lake Storage Gen2, para evitar o uso de cópia em estágios para o Snowflake.
O formato de dados de origem é Parquet, DelimitedText ou JSON com as seguintes configurações:
Para o formato Parquet , o codec de compressão é None, ou Snappy.
Para o formato DelimitedText :
- O delimitador de linha é \r\n ou qualquer caractere único. Se o delimitador de linha não for "\r\n", a primeira linha como cabeçalho será desmarcada e a opção Ignorar contagem de linhas não será especificada.
- O tipo de compressão pode ser None, gzip, bzip2 ou deflate.
- A codificação é deixada como padrão ou definida como "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".
- O caractere de aspas é Aspas duplas, Aspas simples ou Sem aspas.
Para o formato JSON, a cópia direta suporta apenas o caso de a tabela Snowflake de destino ter apenas uma coluna e o tipo de dados dessa coluna ser VARIANT, OBJECT ou ARRAY.
- O tipo de compressão pode ser None, gzip, bzip2 ou deflate.
- A codificação é deixada como padrão ou definida como UTF-8.
- O mapeamento de colunas não é especificado.
Na fonte da atividade Copiar:
- Colunas adicionais não são especificadas.
- Se a origem for uma pasta, Recursivamente será selecionado.
- Prefixo, Hora de início (UTC) e Hora de término (UTC) em Filtrar pela última modificação e Ativar descoberta de partição não são especificados.
Cópia encenada para Snowflake
Quando o armazenamento ou formato de dados de origem não for nativamente compatível com o comando Snowflake COPY, conforme mencionado na última seção, habilite a cópia em estágios interna usando uma instância provisória de armazenamento de Blob do Azure. O recurso de cópia em estágios também oferece uma melhor taxa de transferência. O serviço converte automaticamente os dados para atender aos requisitos de formato de dados do Snowflake. Em seguida, ele invoca o comando COPY para carregar dados no Snowflake. Finalmente, ele limpa seus dados temporários do armazenamento de blob.
Para usar esse recurso, crie uma conexão de armazenamento de Blob do Azure que se refira à conta de armazenamento do Azure como o preparo provisório. Em seguida, vá para a guia Configurações para definir suas configurações de preparação. Você precisa selecionar Externo para configurar a conexão de preparo do Armazenamento de Blobs do Azure.
Quando você especifica a integração de armazenamento no destino, o armazenamento de Blob do Azure de preparo provisório deve ser aquele que você mencionou no estágio externo no Snowflake. Certifique-se de criar uma conexão de Armazenamento de Blob do Azure para ele com qualquer autenticação com suporte e conceda pelo menos a função de Leitor de Dados de Blob de Armazenamento à entidade de serviço Snowflake no Controle de Acesso de Armazenamento de Blob (IAM) do Azure de preparação. O caminho de armazenamento em Configurações de preparo na guia Configurações é obrigatório.
Quando você não especifica a integração de armazenamento no destino, a conexão de armazenamento de Blob do Azure de preparo precisa usar a autenticação de assinatura de acesso compartilhado, conforme exigido pelo comando Snowflake COPY.
Mapeamento
Para Configuração da guia Mapeamento , vá para Configurar seus mapeamentos na guia Mapeamento.
Definições
Para Configuração da guia Configurações , vá para Configurar suas outras configurações na guia Configurações.
Resumo da tabela
As tabelas a seguir contêm mais informações sobre a atividade de cópia no Snowflake.
Origem
Nome | Descrição | valor | Necessário | Propriedade de script JSON |
---|---|---|---|---|
Tipo de armazenamento de dados | Seu tipo de armazenamento de dados. | Externa | Sim | / |
Ligação | Sua conexão com o armazenamento de dados de origem. | < A sua ligação > | Sim | ligação |
Base de dados | Seu banco de dados que você usa como fonte. | < A sua base de dados > | Sim | base de dados |
Utilizar consulta | A maneira de ler dados de Snowflake. | • Tabela • Consulta |
Não | • tabela • consulta |
Tabela | O nome da tabela para ler dados. | < Nome da tabela de origem> | Sim | Esquema tabela |
Consulta | A consulta SQL para ler dados do Snowflake. | < Nome da consulta de origem> | Sim | query |
Integração de armazenamento | Especifique o nome da integração de armazenamento que você criou no Snowflake. Para obter as etapas de pré-requisito de uso da integração de armazenamento, consulte Configurando uma integração de armazenamento Snowflake. | < sua integração de armazenamento > | Não | storageIntegração |
Opções adicionais de cópia do Snowflake | Opções de cópia adicionais, fornecidas como um dicionário de pares chave-valor. Exemplos: MAX_FILE_SIZE, OVERWRITE. Para obter mais informações, consulte Opções de cópia do floco de neve. | • Nome • Valor |
Não | additionalCopyOptions |
Opções adicionais de formato Snowflake | Opções de formato de arquivo adicionais que são fornecidas ao comando COPY como um dicionário de pares chave-valor. Exemplos: DATE_FORMAT, TIME_FORMAT TIMESTAMP_FORMAT. Para obter mais informações, consulte Opções de tipo de formato Snowflake. | • Nome • Valor |
Não | additionalFormatOptions |
Destino
Nota
Embora as instâncias do Snowflake que não sejam do Azure tenham suporte para a origem, apenas as instâncias do Azure Snowflake são atualmente suportadas para destinos do Snowflake (também conhecidas como coletores no Azure Data Factory).
Nome | Descrição | valor | Necessário | Propriedade de script JSON |
---|---|---|---|---|
Tipo de armazenamento de dados | Seu tipo de armazenamento de dados. | Externa | Sim | / |
Ligação | Sua conexão com o armazenamento de dados de destino. | < A sua ligação > | Sim | ligação |
Base de dados | Seu banco de dados que você usa como destino. | < A sua base de dados> | Sim | / |
Tabela | Sua tabela de dados de destino. | < Nome da tabela de destino> | Sim | • esquema • tabela |
Script de pré-cópia | Uma consulta SQL para que a atividade Copy seja executada antes de gravar dados no Snowflake em cada execução. Use essa propriedade para limpar os dados pré-carregados. | < seu script de pré-cópia> | Não | pré-CopyScript |
Integração de armazenamento | Especifique o nome da integração de armazenamento que você criou no Snowflake. Para obter as etapas de pré-requisito de uso da integração de armazenamento, consulte Configurando uma integração de armazenamento Snowflake. | < sua integração de armazenamento > | Não | storageIntegração |
Opções adicionais de cópia do Snowflake | Opções de cópia adicionais, fornecidas como um dicionário de pares chave-valor. Exemplos: ON_ERROR, FORCE, LOAD_UNCERTAIN_FILES. Para obter mais informações, consulte Opções de cópia do floco de neve. | • Nome • Valor |
Não | additionalCopyOptions |
Opções adicionais de formato Snowflake | Opções adicionais de formato de arquivo fornecidas ao comando COPY, fornecidas como um dicionário de pares chave-valor. Exemplos: DATE_FORMAT, TIME_FORMAT TIMESTAMP_FORMAT. Para obter mais informações, consulte Opções de tipo de formato Snowflake. | • Nome • Valor |
Não | additionalFormatOptions |