Formato Avro do Azure Data Factory e do Synapse Analytics
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Dica
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma avaliação gratuita!
Siga este artigo quando desejar analisar os arquivos Avro ou gravar os dados no formato Avro.
O formato Avro é compatível com os seguintes conectores: Amazon S3, Armazenamento compatível com Amazon S3, Blob do Azure, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Arquivos do Azure, Sistema de arquivos, FTP, Google Cloud Storage, HDFS, HTTP, Oracle Cloud Storage e SFTP.
Propriedades do conjunto de dados
Para obter uma lista completa das seções e propriedades disponíveis para definir os conjuntos de dados, confira o artigo sobre Conjuntos de Dados. Esta seção fornece uma lista das propriedades com suporte pelo conjunto de dados Avro.
Propriedade | Descrição | Obrigatório |
---|---|---|
type | A propriedade type do conjunto de dados deve ser definida comoAvro. | Sim |
local | Configurações de local dos arquivos. Cada conector baseado em arquivo tem seu próprio tipo de local e propriedades com suporte em location . Veja os detalhes na seção do artigo sobre o conector –> Propriedades do conjunto de dados. |
Sim |
avroCompressionCodec | O codec de compactação a ser utilizado ao gravar em arquivos Avro. Ao ler de arquivos Avro, o serviço determina automaticamente o codec de compactação com base nos metadados do arquivo. Os tipos com suporte são “none” (padrão), “deflate“, “snappy”. Observação: atualmente a atividade Copy não dá suporte ao Snappy ao ler/gravar arquivos Avro. |
Não |
Observação
Não há suporte para o espaço em branco no nome da coluna para arquivos Avro.
Veja abaixo um exemplo de conjunto de dados Avro no Armazenamento de Blobs do Azure:
{
"name": "AvroDataset",
"properties": {
"type": "Avro",
"linkedServiceName": {
"referenceName": "<Azure Blob Storage linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, retrievable during authoring > ],
"typeProperties": {
"location": {
"type": "AzureBlobStorageLocation",
"container": "containername",
"folderPath": "folder/subfolder",
},
"avroCompressionCodec": "snappy"
}
}
}
Propriedades da atividade de cópia
Para obter uma lista completa das seções e propriedades disponíveis para definir atividades, confia o artigo Pipelines. Esta seção fornece uma lista das propriedades com suporte pela fonte e pelo coletor Avro.
Avro como fonte
As propriedades a seguir têm suporte na seção de *origem* da atividade de cópia.
Propriedade | Descrição | Obrigatório |
---|---|---|
type | A propriedade type da fonte da atividade de cópia deve ser definida como AvroSource. | Sim |
storeSettings | Um grupo de propriedades sobre como ler dados de um armazenamento de dados. Cada conector baseado em arquivo tem suas próprias configurações de leitura com suporte em storeSettings . Veja os detalhes na seção do artigo sobre o conector –> Propriedades da atividade Copy. |
Não |
Avro como coletor
As propriedades a seguir têm suporte na seção do *coletor* da atividade de cópia.
Propriedade | Descrição | Obrigatório |
---|---|---|
type | A propriedade type da fonte da atividade de cópia deve ser definida como AvroSink. | Sim |
formatSettings | Um grupo de propriedades. Veja a tabela Configurações de gravação do Avro abaixo. | Não |
storeSettings | Um grupo de propriedades sobre como gravar dados em um armazenamento de dados. Cada conector baseado em arquivo tem suas próprias configurações de gravação com suporte em storeSettings . Veja os detalhes na seção do artigo sobre o conector –> Propriedades da atividade Copy. |
Não |
Configurações de gravação do Avro compatíveis em formatSettings
:
Propriedade | Descrição | Obrigatório |
---|---|---|
type | O tipo de formatSettings deve ser definido como AvroWriteSettings. | Sim |
maxRowsPerFile | Ao gravar dados em uma pasta, você pode optar por gravar em vários arquivos e especificar o máximo de linhas por arquivo. | Não |
fileNamePrefix | Aplicável quando maxRowsPerFile for configurado.Especifique o prefixo do nome do arquivo ao gravar dados em vários arquivos, resultando neste padrão: <fileNamePrefix>_00000.<fileExtension> . Se não for especificado, o prefixo de nome de arquivo será gerado automaticamente. Essa propriedade não se aplica quando a fonte é um armazenamento baseado em arquivo ou armazenamento de dados habilitado para opção de partição. |
Não |
Mapeamento de propriedades de fluxo de dados
No fluxos de dados de mapeamento, é possível ler e gravar em formato avro nos seguintes armazenamentos de dados: Armazenamento de Blobs do Azure, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2 e SFTP; e é possível ler o formato avro no Amazon S3.
Propriedades da Origem
A tabela abaixo lista as propriedades com suporte de uma origem Avro. Você pode editar essas propriedades na guia Opções de origem.
Nome | Descrição | Obrigatório | Valores permitidos | Propriedade do script do Fluxo de Dados |
---|---|---|---|---|
Caminhos curinga | Todos os arquivos correspondentes ao caminho curinga serão processados. Substitui a pasta e o caminho do arquivo definido no conjunto de dados. | não | String[] | wildcardPaths |
Caminho raiz da partição | Para dados de arquivo particionados, é possível inserir um caminho raiz de partição para ler pastas particionadas como colunas | não | String | partitionRootPath |
Lista de arquivos | Se sua fonte estiver apontando para um arquivo de texto que lista os arquivos a serem processados | não | true ou false |
fileList |
Coluna para armazenar o nome do arquivo | Criar uma nova coluna com o nome e o caminho do arquivo de origem | não | String | rowUrlColumn |
Após a conclusão | Exclua ou mova os arquivos após o processamento. O caminho do arquivo inicia a partir da raiz do contêiner | não | Excluir: true ou false Mover ['<from>', '<to>'] |
purgeFiles moveFiles |
Filtrar pela última modificação | Escolher filtrar arquivos com base na última alteração | não | Carimbo de data/hora | modifiedAfter modifiedBefore |
Permitir nenhum arquivo encontrado | Se for true, um erro não será gerado caso nenhum arquivo seja encontrado | não | true ou false |
ignoreNoFilesFound |
Propriedades do coletor
A tabela abaixo lista as propriedades com suporte de um coletor Avro. Você pode editar essas propriedades na guia Configurações.
Nome | Descrição | Obrigatório | Valores permitidos | Propriedade do script do Fluxo de Dados |
---|---|---|---|---|
Limpe a pasta | Se a pasta de destino for limpa antes da gravação | não | true ou false |
truncate |
Opção do nome do arquivo | O formato de nomenclatura dos dados gravados. Por padrão, um arquivo por partição no formato part-#####-tid-<guid> |
não | Padrão: cadeia de caracteres Por partição: cadeia de caracteres [] Como dados na coluna: cadeia de caracteres Saída para arquivo único: ['<fileName>'] |
filePattern partitionFileNames rowUrlColumn partitionFileNames |
Citar tudo | Colocar todos os valores entre aspas | não | true ou false |
quoteAll |
Suporte do tipo de dados
Atividade de cópia
Não há suporte para tipos de dados complexos do Avro (registros, enumerações, matrizes, mapas, uniões e fixo) na atividade Copy.
Fluxos de dados
Ao trabalhar com arquivos Avro em fluxos de dados, você pode ler e gravar tipos de dados complexos, mas limpe primeiro o esquema físico do conjunto de dados. Nos fluxos de dados, é possível definir a projeção lógica e derivar colunas que são estruturas complexas e, em seguida, mapear automaticamente esses campos para um arquivo Avro.