Partilhar via


Formato ORC em Azure Data Factory e Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Data Factory em Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA incorporada e novas funcionalidades. Se és novo na integração de dados, começa pelo Fabric Data Factory. As cargas de trabalho existentes do ADF podem atualizar para o Fabric para aceder a novas capacidades em ciência de dados, análise em tempo real e relatórios.

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

O formato ORC é suportado para os seguintes conectores: Amazon S3, Armazenamento Compatível com Amazon S3, Azure Blob, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Ficheiros do Azure, Sistema de Ficheiros, FTP, Google Cloud Storage, HDFS, HTTP, Oracle Cloud Storage e SFTP.

Propriedades do conjunto de dados

Para obter uma lista completa de seções e propriedades disponíveis para definir conjuntos de dados, consulte o artigo Conjuntos de dados. Esta seção fornece uma lista de propriedades suportadas pelo conjunto de dados ORC.

Property Descrição Obrigatório
tipo A propriedade type do conjunto de dados deve ser definida como Orc. Sim
localização Configurações de localização do(s) arquivo(s). Cada conector baseado em arquivo tem seu próprio tipo de local e propriedades suportadas em location. Consulte os detalhes no artigo do conector -> seção Propriedades do conjunto de dados. Sim
compressãoCodec O codec de compressão a ser usado ao gravar em arquivos ORC. Ao ler arquivos ORC, o Data Factories determina automaticamente o codec de compactação com base nos metadados do arquivo.
Os tipos suportados são none, zlib, snappy (padrão) e lzo. Note que atualmente o atividade Copy não suporta LZO ao ler/gravar ficheiros ORC.
Não

Abaixo está 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",
            }
        }
    }
}

Tenha em conta os seguintes pontos:

  • Tipos de dados complexos (por exemplo, MAP, LIST, STRUCT) são atualmente suportados apenas em Fluxos de Dados, não em Atividade de Cópia. Para usar tipos complexos em fluxos de dados, não importe o esquema de arquivo no conjunto de dados, deixando o esquema em branco no conjunto de dados. Em seguida, na transformação Source, importe a projeção.
  • Não há suporte para espaço em branco no nome da coluna.

atividade Copy propriedades

Para obter uma lista completa de seções e propriedades disponíveis para definir atividades, consulte o artigo Pipelines . Esta seção fornece uma lista de propriedades suportadas pela origem e pelo coletor ORC.

ORC como fonte

As propriedades a seguir são suportadas na seção copy activity *source* .

Property Descrição Obrigatório
tipo A propriedade type da fonte de 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 suportadas em storeSettings. Ver detalhes no artigo do conector -> atividade Copy secção de propriedades. Não

ORC como pia

As propriedades a seguir são suportadas na seção de atividade de cópia *sink* .

Property Descrição Obrigatório
tipo A propriedade type do coletor de atividade de cópia deve ser definida como OrcSink. Sim
formatConfigurações Um grupo de propriedades. Consulte a tabela de configurações de gravação 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 suportadas em storeSettings. Ver detalhes no artigo do conector -> atividade Copy secção de propriedades. Não

Configurações de gravação ORC suportadas emformatSettings:

Property 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 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 do nome do arquivo será gerado automaticamente. Essa propriedade não se aplica quando a origem é armazenamento baseado em arquivo ou armazenamento de dados habilitado para opção de partição.
Não

Mapeando propriedades de fluxo de dados

No mapeamento de fluxos de dados, pode ler e escrever para o 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 pode ler o formato ORC em Amazon S3.

Você pode apontar para arquivos ORC usando o conjunto de dados ORC ou usando um conjunto de dados embutido.

Propriedades de origem

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

Ao usar o conjunto de dados embutido, você verá configurações de arquivo adicionais, que são as mesmas que as propriedades descritas na seção de propriedades do conjunto de dados.

Nome Descrição Obrigatório Valores permitidos Propriedade do script de fluxo de dados
Formato 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 definidos no conjunto de dados. não String[] wildcardCaminhos
Caminho da raiz da partição Para dados de arquivo particionados, você pode inserir um caminho raiz de partição para ler pastas particionadas como colunas não String partitionRootPath
Lista de arquivos Se sua fonte está apontando para um arquivo de texto que lista os arquivos a serem processados não true ou false Lista de arquivos
Coluna para armazenar o nome do arquivo Criar uma nova coluna com o nome do arquivo de origem e o caminho não String rowUrlColumn
Após a conclusão Exclua ou mova os arquivos após o processamento. O caminho do arquivo começa a partir da raiz do contêiner não Eliminar: true ou false
Movimentar-se: [<from>, <to>]
purgeFiles
moveFiles
Filtrar por última modificação Opte por filtrar ficheiros com base na data em que foram alterados pela última vez não Carimbo de Data/Hora modificadoApós
modificadoAntes
Não permitir que nenhum arquivo seja encontrado Se verdadeiro, um erro não é lançado se nenhum arquivo for encontrado não true ou false ignoreNoFilesFound

Exemplo de fonte

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 lavatório

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

Ao usar o conjunto de dados embutido, você verá configurações de arquivo adicionais, que são as mesmas que as propriedades descritas na seção de propriedades do conjunto de dados.

Nome Descrição Obrigatório Valores permitidos Propriedade do script de fluxo de dados
Formato O formato deve ser orc sim orc format
Limpar a pasta Se a pasta de destino for limpa antes da gravação não true ou false truncar
Opção de nome de 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: String
Por partição: String[]
Como dados na coluna: String
Saída para um único arquivo: ['<fileName>']
filePattern
partitionFileNames
rowUrlColumn
partitionFileNames

Exemplo de lavatório

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

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

Utilização de Integration Runtime Auto-hospedado

Importante

Para cópias habilitadas por Integration Runtime auto-hospedadas, por exemplo, entre repositórios de dados on-premises e cloud, se não estiver a copiar ficheiros ORC as-is, precisa de instalar o JRE 8 64-bit (Java Runtime Environment) ou OpenJDK e Microsoft Visual C++ 2010 Redistributable Package na sua máquina IR. Confira o parágrafo a seguir com mais detalhes.

Para cópias a correr em IR auto-hospedado com serialização/desserialização de ficheiros ORC, o serviço localiza o tempo de execução Java verificando primeiro o registo (SOFTWARE\JavaSoft\Java Runtime Environment\{Current Version}\JavaHome) para o JRE, se não for encontrado, e depois verificando a variável do sistema JAVA_HOME para o OpenJDK.

  • Para usar o JRE: O IR de 64 bits requer o JRE de 64 bits. Você pode encontrá-lo aqui.
  • Para usar o OpenJDK: É suportado desde a versão 3.13 do IR. Empacote o jvm.dll com todos os outros assemblies necessários do OpenJDK na máquina IR auto-hospedada e defina a variável de ambiente do sistema JAVA_HOME de acordo.
  • Para instalar o Visual C++ 2010 Redistributable Package: Visual C++ 2010 Redistributable Package não é instalado com instalações IR auto-hospedadas. Você pode encontrá-lo aqui.

Gorjeta

Se copiar dados para/desde o formato ORC usando Integration Runtime auto-hospedado e clicar em erro a dizer "Ocorreu um erro ao invocar java, mensagem: java.lang. OutOfMemoryError:Java heap space", podes adicionar uma variável de ambiente _JAVA_OPTIONS na máquina que hospeda o IR auto-hospedado para ajustar o tamanho mínimo/máximo do heap para a JVM e permitir essa cópia, e depois reexecutar o pipeline.

Definir o tamanho da pilha da JVM no IR auto-hospedado

Exemplo: definir variável _JAVA_OPTIONS com valor -Xms256m -Xmx16g. O flag Xms especifica o pool inicial de alocação de memória para uma Java Máquina Virtual (JVM), enquanto Xmx especifica o pool máximo de alocação de memória. Isso significa que a JVM será iniciada com Xms quantidade de memória e poderá usar um máximo de Xmx quantidade de memória. Por padrão, o serviço usa min 64 MB e max 1G.