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 com suporte
Para a configuração de cada guia em atividade Copy, vá para as seções a seguir, respectivamente.
Geral
Consulte as diretrizes de Configurações Geraispara definir a guia Configurações Gerais.
Origem
As seguintes propriedades têm suporte ao Lakehouse 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 do Snowflake selecionando Novo.
- Banco de dados: o banco de dados padrão a ser usado depois de conectado. Ele deve ser um banco de dados existente para o qual a função especificada tem 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 definição.
- Tabela: selecione a tabela em seu banco de dados na lista suspensa. Ou marcar Editar para inserir o nome da tabela manualmente.
- Consulta: especifica a consulta SQL para ler os dados do Snowflake. Se os nomes do esquema, tabela e colunas contiverem letras minúsculas, mencione o identificador de 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 do uso da integração de armazenamento, consulte Configurar 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 COPY do Snowflake para carregamento de dados. Opções de cópia adicionais, fornecidas como um dicionário de pares chave-valor. Exemplos: MAX_FILE_SIZE, OVERWRITE. Para mais informações, consulte Opções de cópia do 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 COPY do Snowflake para carregamento de dados. 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 mais informações, consulte Opções de tipo de formato do Snowflake.
Cópia direta a partir do Snowflake
Se o armazenamento de dados e o formato do coletor atenderem aos critérios descritos nesta seção, você poderá usar a atividade de Cópia para copiar diretamente do Snowflake para o coletor. O serviço verificará as configurações e falhará na execução de atividade Copy se os seguintes critérios não forem atendidos:
Quando você especifica Integração de armazenamento na origem: o armazenamento de dados de destino é o Armazenamento de Blobs do Azure que você referiu no estágio externo no Snowflake. Você precisa concluir as seguintes etapas antes de copiar dados:
Crie uma conexão do Armazenamento de Blobs do Azure para o Armazenamento de Blobs do Azure de destino com qualquer tipo de autenticação com suporte.
Conceda pelo menos função de Colaborador de Dados de Blobs de Armazenamento à entidade de serviço Snowflake no Controle de Acesso (IAM) do Armazenamento de Blobs do Azure de destino.
Quando você não especifica 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 desejar copiar dados diretamente para o Azure Data Lake Storage Gen2 no formato com suporte a seguir, você pode criar uma conexão do Armazenamento de Blobs do Azure com a autenticação SAS em sua conta do Azure Data Lake Storage Gen2 e assim evitar o uso da cópia preparada do Snowflake.
O formato de dados do coletor é de Parquet, texto delimitado ou JSON, com as seguintes configurações:
- Para o formato Parquet, o codec de compactação é Nenhum, Snappy ou Lzo.
- Use o formato DelimitedText:
- O delimitador de linha é \r\nou qualquer caractere único.
- O tipo de compactação pode ser None, gzip, bzip2 ou deflate.
- A codificação é deixada como padrão ou definida como UTF-8.
- O caractere de aspas são aspas duplas, aspas simples ou sem aspas.
- Para o formato JSON, a cópia direta dá suporte apenas ao caso em que o resultado da consulta ou tabela Snowflake de origem tenha apenas uma coluna e o tipo de dados dessa coluna for VARIANT,OBJECTou ARRAY.
- O tipo de compactaçã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 origem da atividade de cópia, Colunas adicionaisnão está especificado.
O mapeamento de colunas não está especificado.
Cópia preparada a partir do Snowflake
Quando o formato ou o armazenamento de dados de destino não for nativamente compatível com o comando Snowflake COPY, conforme mencionado na última seção, habilite a cópia temporária interna usando uma instância de Armazenamento de Blobs do Azure. O recurso de cópia em etapas também proporciona uma melhor taxa de transferência. O serviço exporta dados do Snowflake para o armazenamento de preparo, em seguida copia os dados para o destino e, por fim, limpa os dados temporários do armazenamento de preparo.
Para usar esse recurso, crie uma conexão do Armazenamento de Blobs do Azure que se refira à conta de armazenamento do Azure como sendo o armazenamento de preparo. Em seguida, vá para a guia Configurações para definir suas configurações de teste. Você precisa selecionar Externo para configurar a conexão de preparo do Armazenamento de Blobs do Azure.
Quando você especifica Integração de armazenamento na origem, o preparo provisório do Armazenamento de Blobs do Azure deve ser aquele que você referiu no estágio externo no Snowflake. Certifique-se de criar uma conexão do Armazenamento de Blobs do Azure para ele com qualquer autenticação com suporte e conceda pelo menos função de Colaborador de Dados de Blobs de Armazenamento à entidade de serviço Snowflake no controle de acesso (IAM) do Armazenamento de Blobs do Azure de preparo. O caminho de armazenamento em Configurações de preparo na guia Configurações é necessário.
Quando você não especifica Integração de armazenamento na origem, a conexão do Armazenamento de Blobs do Azure de preparo precisa usar a autenticação de assinatura de acesso compartilhado, conforme exigido pelo comando COPY do Snowflake. Conceda a permissão de acesso adequada ao Snowflake no Armazenamento de Blobs do Azure de preparo. Para saber mais sobre isso, consulte este artigo.
Destino
As seguintes propriedades têm suporte ao Lakehouse 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 do Snowflake selecionando Novo.
- Banco de dados: o banco de dados padrão a ser usado depois de conectado. Ele deve ser um banco de dados existente para o qual a função especificada tem privilégios.
- Tabela: selecione a tabela em seu banco de dados na lista suspensa. Ou marcar 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 a ser executada antes de gravar dados em uma tabela de destino em cada execução. Você pode usar essa propriedade para limpar os dados previamente 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 do uso da integração de armazenamento, consulte Configurar 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 COPY do Snowflake para carregamento de dados. Opções de cópia adicionais, fornecidas como um dicionário de pares chave-valor. Exemplos: ON_ERROR, FORCE, LOAD_UNCERTAIN_FILES. Para mais informações, consulte Opções de cópia do 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 COPY do Snowflake para carregamento de dados. 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 mais informações, consulte Opções de tipo de formato do Snowflake.
Cópia direta para o Snowflake
Se o armazenamento e o formato de dados de origem atenderem aos critérios descritos nesta seção, você poderá usar a atividade Copy para copiar diretamente da origem para o Snowflake. O serviço verificará as configurações e falhará na execução de atividade Copy se os seguintes critérios não forem atendidos:
Quando você especifica Integraçãode armazenamento no destino:
O armazenamento de dados de origem é o Armazenamento de Blobs do Azure que você referiu no estágio externo no Snowflake. Você precisa concluir as seguintes etapas antes de copiar dados:
Crie uma conexão do Armazenamento de Blobs do Azure para o Armazenamento de Blobs do Azure de origem com qualquer tipo de autenticação com suporte.
Conceda pelo menos função de Leitor de Dados de Blobs de Armazenamento à entidade de serviço Snowflake no Controle de Acesso (IAM) de Armazenamento de Blobs do Azure da origem.
Quando você não especifica 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 desejar copiar dados diretamente do Azure Data Lake Storage Gen2 no formato com suporte a seguir, você pode criar uma conexão do Armazenamento de Blobs do Azure com a autenticação SAS em sua conta do Azure Data Lake Storage Gen2 e assim evitar o uso da cópia preparada para o Snowflake.
O formato de dados do coletor é de Parquet, DelimitedText ou JSON, com as seguintes configurações:
Para o formato Parquet, o codec de compactação é Nenhum ou Snappy.
Use o formato DelimitedText:
- O Delimitador de linha é \r\nou qualquer caractere único. Se o delimitador de linha não for "\r\n", a primeira linha como cabeçalho não será selecionada e Ignorar contagem de linhas não será especificada.
- O tipo de compactaçã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 são aspas duplas, aspas simples ou sem aspas.
Para o formato JSON, a cópia direta dá suporte apenas ao caso em que a tabela Snowflake do coletor tenha apenas uma coluna e o tipo de dados dessa coluna for VARIANT,OBJECTou ARRAY.
- O tipo de compactaçã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 está especificado.
Na origem da atividade Copy:
- Colunas adicionais não são especificadas.
- Se sua 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 Habilitar descoberta de partição não são especificados.
Cópia preparada para o Snowflake
Quando o formato ou o armazenamento 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 temporária interna usando uma instância de Armazenamento de Blobs do Azure. O recurso de cópia em etapas também proporciona 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 blobs.
Para usar esse recurso, crie uma conexão do Armazenamento de Blobs do Azure que se refira à conta de armazenamento do Azure como sendo o armazenamento de preparo. Em seguida, vá para a guia Configurações para definir suas configurações de teste. Você precisa selecionar Externo para configurar a conexão de preparo do Armazenamento de Blobs do Azure.
Quando você especifica Integração do armazenamento no destino, o preparo provisório do Armazenamento de Blobs do Azure deve ser aquele que você referiu no estágio externo no Snowflake. Certifique-se de criar uma conexão do Armazenamento de Blobs do Azure para ele com qualquer autenticação com suporte e conceda pelo menos função de Leitor de Dados de Blobs de Armazenamento à entidade de serviço Snowflake no controle de acesso (IAM) do Armazenamento de Blobs do Azure de preparo. O caminho de armazenamento em Configurações de preparo na guia Configurações é necessário.
Quando você não especifica Integração de armazenamento no destino, a conexão do Armazenamento de Blobs do Azure de preparo precisa usar a autenticação de assinatura de acesso compartilhado, conforme exigido pelo comando COPY do Snowflake.
Mapeamento
Para Configuração da guia Mapeamento, acesseConfigurar seus mapeamentos na guia mapeamento.
Configurações
Para configuração da guia Configurações, acesse Definir 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 | Obrigatório | Propriedade do script JSON |
---|---|---|---|---|
Tipo de armazenamento de dados | Seu tipo de armazenamento de dados. | Externo | Yes | / |
Conexão | Sua conexão com o armazenamento de dados de origem. | < sua conexão > | Yes | connection |
Backup de banco de dados | Seu banco de dados que você usa como origem. | <o banco de dados> | Sim | Banco de Dados |
Usar a consulta | A maneira de ler dados do Snowflake. | • Tabela • Consulta |
Não | • tabela • consulta |
Tabela | O nome da tabela a ser lida. | <Nome da tabela de origem> | Sim | esquema tabela |
Consulta | Especifica a consulta SQL para ler os dados do Snowflake. | <Nome da sua consulta de origem> | Sim | consulta |
Integração de armazenamento | Especifique o nome da integração de armazenamento que você criou no Snowflake. Para obter as etapas de pré-requisito do uso da integração de armazenamento, consulte Configurar uma integração de armazenamento snowflake. | < sua integração de armazenamento > | Não | storageIntegration |
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 mais informações, consulte Opções de cópia do Snowflake. | • Nome • Valor |
Não | additionalCopyOptions |
Opções adicionais de formato do 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 mais informações, consulte Opções de tipo de formato do Snowflake. | • Nome • Valor |
Não | additionalFormatOptions |
Destino
Observação
Embora as instâncias do Snowflake que não são do Azure tenham suporte para a origem, somente as instâncias do Snowflake no Azure têm suporte atualmente para destinos do Snowflake (também conhecidos como coletores no Azure Data Factory).
Nome | Descrição | Valor | Obrigatório | Propriedade do script JSON |
---|---|---|---|---|
Tipo de armazenamento de dados | Seu tipo de armazenamento de dados. | Externo | Yes | / |
Conexão | Sua conexão com o armazenamento de dados de destino. | < sua conexão > | Yes | connection |
Backup de banco de dados | O banco de dados que você usa como destino. | < seus banco 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 a atividade de Cópia a ser 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 | preCopyScript |
Integração de armazenamento | Especifique o nome da integração de armazenamento que você criou no Snowflake. Para obter as etapas de pré-requisito do uso da integração de armazenamento, consulte Configurar uma integração de armazenamento snowflake. | < sua integração de armazenamento > | Não | storageIntegration |
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 mais informações, consulte Opções de cópia do Snowflake. | • Nome • Valor |
Não | additionalCopyOptions |
Opções adicionais de formato do 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 mais informações, consulte Opções de tipo de formato do Snowflake. | • Nome • Valor |
Não | additionalFormatOptions |