Compartilhar via


Formato ORC no Azure Data Factory e no Synapse Analytics

APPLIES TO: Azure Data Factory Azure Synapse Analytics

Dica

Data Factory no Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA interna e novos recursos. Se você não estiver familiarizado com a integração de dados, comece com Fabric Data Factory. As cargas de trabalho existentes do ADF podem ser atualizadas para Fabric para acessar novos recursos em ciência de dados, análise em tempo real e relatórios.

Siga este artigo quando desejar analisar os arquivos ORC ou gravar os dados no formato ORC.

O formato ORC tem suporte para os seguintes conectores: Amazon S3, Amazon S3 Compatible Storage, Azure Blob, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Arquivos do Azure, File System, FTP, Google Cloud Storage, HDFS, HTTP, Exibir Armazenamento em Nuvem 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 compatíveis pelo conjunto de dados ORC.

Propriedade Descrição Obrigatório
tipo A propriedade type do conjunto de dados deve ser definida como Orc. 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
compressionCodec O codec de compactação a ser utilizado ao gravar em arquivos ORC. Ao ler de arquivos ORC, as fábricas de dados determinam automaticamente o codec de compactação com base nos metadados do arquivo.
Os tipos compatíveis são none, zlib, snappy (padrão) e lzo. Observe que atividade Copy atualmente não dá suporte ao LZO quando arquivos ORC de leitura/gravação.
Não

Veja abaixo um exemplo de conjunto de dados ORC no Armazenamento de Blobs do Azure:

{
    "name": "OrcDataset",
    "properties": {
        "type": "Orc",
        "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",
            }
        }
    }
}

Observe os seguintes pontos:

  • Os tipos de dados complexos (por exemplo, MAP, LIST, STRUCT) são compatíveis atualmente apenas com Fluxos de Dados, e não com Atividade Copy. Para utilizar tipos complexos nos fluxos de dados, não importe o esquema de arquivos no conjunto de dados, deixando o esquema em branco no conjunto de dados. Em seguida, na transformação de Origem, importe a projeção.
  • Não há suporte para o espaço em branco no nome da coluna.

propriedades atividade Copy

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 aceitas pela fonte e pelo coletor ORC.

ORC como fonte

As propriedades a seguir têm suporte na seção de *origem* da atividade de cópia.

Propriedade Descrição Obrigatório
tipo A propriedade type da fonte da atividade de cópia deve ser definida como: OrcSource. 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. See detalhes no artigo do conector -> atividade Copy seção propriedades. Não

ORC como coletor

As propriedades a seguir têm suporte na seção do *coletor* da atividade de cópia.

Propriedade Descrição Obrigatório
tipo O tipo de propriedade do coletor da atividade de cópia deve ser definido como OrcSink. Sim
formatSettings Um grupo de propriedades. Consulte a tabela Configurações de gravação de ORC 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. See detalhes no artigo do conector -> atividade Copy seção propriedades. Não

Configurações de gravação de ORC compatíveis em formatSettings:

Propriedade Descrição Obrigatório
tipo O tipo de formatSettings deve ser definido como OrcWriteSettings. 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

Nos fluxos de dados de mapeamento, você pode ler e gravar no formato ORC nos seguintes armazenamentos de dados: Armazenamento de Blobs do Azure, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2 e SFTP e você pode ler o formato ORC em Amazon S3.

É possível apontar para arquivos ORC usando o conjunto de programas ORC ou um conjunto de dados embutido.

Propriedades da Origem

A tabela abaixo lista as propriedades aceitas por uma origem ORC. Você pode editar essas propriedades na guia Opções de origem.

Ao usar o conjunto de linhas embutido, será possível ver as configurações de arquivo adicionais, que são iguais às propriedades descritas na seção Propriedades do conjunto.

Nome Descrição Obrigatório Valores permitidos Propriedade do script do Fluxo de Dados
Formatar O formato deve ser orc sim orc format
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

Exemplo de origem

O script de fluxo de dados associado de uma configuração de origem ORC é:

source(allowSchemaDrift: true,
    validateSchema: false,
    rowUrlColumn: 'fileName',
    format: 'orc') ~> OrcSource

Propriedades do coletor

A tabela abaixo lista as propriedades aceitas por um coletor do ORC. Você pode editar essas propriedades na guia Configurações.

Ao usar o conjunto de linhas embutido, será possível ver as configurações de arquivo adicionais, que são iguais às propriedades descritas na seção Propriedades do conjunto.

Nome Descrição Obrigatório Valores permitidos Propriedade do script do Fluxo de Dados
Formatar O formato deve ser orc sim orc format
Limpe a pasta Se a pasta de destino for limpa antes da gravação não true ou false truncar
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

Exemplo de coletor

O script de fluxo de dados associado de uma configuração de coletor do ORC é:

OrcSource sink(
    format: 'orc',
    filePattern:'output[n].orc',
    truncate: true,
    allowSchemaDrift: true,
    validateSchema: false,
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> OrcSink

Usando Integration Runtime auto-hospedada

Importante

Para cópia capacitada por Integration Runtime auto-hospedadas, por exemplo, entre armazenamentos de dados locais e na nuvem, se você não estiver copiando arquivos ORC as-is você precisa instalar o JRE 8 de 64 bits (ambiente de Java runtime) ou OpenJDK e Microsoft Pacote Redistribuível do Visual C++ 2010 em seu computador IR. Confira o próximo parágrafo para obter mais detalhes.

Para cópia em execução no IR auto-hospedado com serialização/desserialização de arquivos ORC, o serviço localiza o runtime do Java verificando primeiro o registro (SOFTWARE\JavaSoft\Java Runtime Environment\{Current Version}\JavaHome) para JRE, se não encontrado, verificando em segundo lugar a variável do sistema JAVA_HOME para OpenJDK.

  • Para usar JRE: o IR de 64 bits requer JRE de 64 bits. É possível encontrá-lo aqui.
  • Para usar o OpenJDK: ele é compatível desde a versão do IR 3.13. Empacote o jvm.dll com todos os outros assemblies necessários do OpenJDK no IR auto-hospedado do computador e defina a variável de ambiente JAVA_HOME adequadamente.
  • Para instalar Visual C++ 2010 Redistributable Package: o Visual C++ 2010 Redistributable Package não é instalado com instalações de IR auto-hospedado. É possível encontrá-lo aqui.

Dica

Se você copiar dados de/para o formato ORC usando o Integration Runtime auto-hospedado e o erro de ocorrência dizendo "Ocorreu um erro ao invocar java, mensagem: java.lang. OutOfMemoryError:Java heap space", você pode adicionar uma variável de ambiente _JAVA_OPTIONS no computador que hospeda o IR auto-hospedado para ajustar o tamanho do heap mínimo/máximo para JVM para capacitar essa cópia e executar novamente o pipeline.

Definir o tamanho do heap da JVM no IR auto-hospedado

Exemplo: defina a variável _JAVA_OPTIONS com o valor -Xms256m -Xmx16g. O sinalizador Xms especifica o pool de alocação de memória inicial para uma JVM (máquina virtual) Java, enquanto Xmx especifica o pool de alocação de memória máximo. Isso significa que a JVM será iniciada com Xms quantidade de memória e será capaz de usar um máximo de Xmx quantidade de memória. Por padrão, o serviço usa no mínimo 64 MB e no máximo 1 G.