Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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 Parquet ou gravar os dados no formato Parquet.
O formato Parquet é 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
- Armazenamento em nuvem do Google
- HDFS
- HTTP
- Armazenamento em nuvem Oracle
- SFTP
Para obter uma lista de recursos suportados para todos os conectores disponíveis, visite o artigo Visão geral dos conectores.
Utilização de Runtime de Integração Autogerido
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 Parquet as-is, precisa de instalar o JRE 8 64-bit (Java Runtime Environment), JDK 23 (Java Development Kit) ou OpenJDK na sua máquina IR. Confira o parágrafo a seguir com mais detalhes.
Para cópias executadas em IR auto-hospedado com serialização/desserialização de ficheiros Parquet, o serviço localiza o Java runtime verificando primeiro o registo (SOFTWARE\JavaSoft\Java Runtime Environment\{Current Version}\JavaHome) para JRE; se não for encontrado, verifica em seguida a variável do sistema JAVA_HOME para OpenJDK.
- Para usar o JRE: O IR de 64 bits requer o JRE de 64 bits. Você pode encontrá-lo aqui.
-
Para usar o JDK: o IR de 64 bits requer o JDK 23 de 64 bits. Você pode encontrá-lo aqui. Certifique-se de atualizar a variável de sistema
JAVA_HOMEpara a pasta raiz da instalação do JDK 23, ou seja,C:\Program Files\Java\jdk-23, e adicione o caminho para as pastasC:\Program Files\Java\jdk-23\bineC:\Program Files\Java\jdk-23\bin\serverpara a variável de sistemaPath. - 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 e, em seguida, reinicie o IR auto-hospedado para entrar em vigor imediatamente. Para descarregar o Microsoft Build do OpenJDK, consulte Microsoft Build do OpenJDK™.
Gorjeta
Se copiar dados para/a partir do formato Parquet usando Integration Runtime auto-hospedado e encontra um erro que diz "Ocorreu um erro ao chamar 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 da pilha de heap da JVM para facilitar essa cópia, e podes então reexecutar o pipeline.
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.
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 Parquet.
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type do conjunto de dados deve ser definida como Parquet. | Sim |
| localização | Configurações de localização do(s) arquivo(s). Cada conector baseado em ficheiro tem o seu próprio tipo de localização e propriedades suportadas em location.
Consulte os detalhes no artigo sobre o conector -> seção propriedades do conjunto de dados. |
Sim |
| compressãoCodec | O codec de compressão a utilizar ao gravar em ficheiros Parquet. Quando lê ficheiros Parquet, as Data Factories determinam automaticamente o codec de compressão com base nos metadados do ficheiro. Os tipos suportados são "none", "gzip", "snappy" (padrão) e "lzo". Nota: Atualmente, o atividade Copy não suporta LZO ao ler ou escrever ficheiros Parquet. |
Não |
Nota
O espaço em branco no nome da coluna não é suportado para arquivos Parquet.
Abaixo está um exemplo de conjunto de dados Parquet no Armazenamento de Blobs do Azure:
{
"name": "ParquetDataset",
"properties": {
"type": "Parquet",
"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",
},
"compressionCodec": "snappy"
}
}
}
Propriedades da atividade de cópia
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 fonte e pia do Parquet.
Parquet como fonte
As propriedades a seguir são suportadas na seção copy activity *source* .
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type da fonte de atividade de cópia deve ser definida como ParquetSource. | Sim |
| configurações da loja | Um grupo de propriedades sobre como ler dados de um armazenamento de dados. Cada conector baseado em arquivo tem as suas próprias configurações de leitura suportadas em storeSettings.
Ver detalhes no artigo do conector -> secção de propriedades da atividade de cópia. |
Não |
Parquet como lavatório
As propriedades a seguir são suportadas na seção de atividade de cópia *sink* .
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | A propriedade type do coletor de atividade de cópia deve ser definida como ParquetSink. | Sim |
| configuraçõesDeFormato | Um grupo de propriedades. Consulte a tabela de configurações de gravação do Parquet abaixo. | Não |
| configurações da loja | Um grupo de propriedades sobre como gravar dados em um armazenamento de dados. Cada conector baseado em arquivo tem as suas próprias configurações de gravação suportadas em storeSettings.
Veja os detalhes no artigo do conector - seção de propriedades da atividade de cópia>. |
Não |
Configurações de gravação do Parquet suportadas em formatSettings.
| Propriedade | Descrição | Obrigatório |
|---|---|---|
| tipo | O tipo de formatSettings deve ser definido como ParquetWriteSettings. | 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 está 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 formato parquet 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 parquet em Amazon S3.
Propriedades de origem
A tabela abaixo lista as propriedades suportadas por uma fonte de parquet. Você pode editar essas propriedades na guia Opções de origem .
| Nome | Descrição | Obrigatório | Valores permitidos | Propriedade do script de fluxo de dados |
|---|---|---|---|---|
| Formato | O formato deve ser parquet |
sim | parquet |
formato |
| Caminhos curinga | Todos os arquivos correspondentes ao caminho curinga serão processados. Substitui a pasta e o caminho de ficheiro 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 |
| Permitir que nenhum ficheiro seja encontrado | Se verdadeiro, um erro não é lançado se nenhum arquivo for encontrado | não |
true ou false |
ignorarNenhumArquivoEncontrado |
Exemplo de fonte
A imagem abaixo é um exemplo de uma configuração de fonte de parquet no mapeamento de fluxos de dados.
O script de fluxo de dados associado é:
source(allowSchemaDrift: true,
validateSchema: false,
rowUrlColumn: 'fileName',
format: 'parquet') ~> ParquetSource
Propriedades do lavatório
A tabela abaixo lista as propriedades suportadas por uma pia de parquet. Você pode editar essas propriedades na guia Configurações .
| Nome | Descrição | Obrigatório | Valores permitidos | Propriedade do script de fluxo de dados |
|---|---|---|---|---|
| Formato | O formato deve ser parquet |
sim | parquet |
formato |
| 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>'] |
padrão de arquivo partitionFileNames rowUrlColumn NomesDeFicheirosDePartição |
Exemplo de lavatório
A imagem abaixo é um exemplo de uma configuração de coletor de parquet no mapeamento de fluxos de dados.
O script de fluxo de dados associado é:
ParquetSource sink(
format: 'parquet',
filePattern:'output[n].parquet',
truncate: true,
allowSchemaDrift: true,
validateSchema: false,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> ParquetSink
Mapeamento de tipo de dados para Parquet
Ao ler dados do conector de origem no formato Parquet, os mapeamentos a seguir são usados de tipos de dados Parquet para tipos de dados intermédios usados pelo serviço internamente.
| Tipo de parquet | Tipo de dados de serviço provisório |
|---|---|
| BOOLEAN | booleano |
| INT_8 | SByte |
| INT_16 | Int16 |
| INT_32 | Int32 |
| INT_64 | Int64 |
| INT96 | DateTime |
| UINT_8 | Byte |
| UINT_16 | UInt16 |
| UINT_32 | UInt32 |
| UINT_64 | UInt64 |
| DECIMAL | Decimal |
| FLOAT | Solteiro |
| DUPLO | Double |
| DATE | Date |
| TIME_MILLIS | TimeSpan |
| TIME_MICROS | Int64 |
| TIMESTAMP_MILLIS | DateTime |
| TIMESTAMP_MICROS | Int64 |
| STRING | String |
| UTF8 | String |
| ENUM | Matriz de bytes |
| Identificador Único Universal (UUID) | Matriz de bytes |
| JSON | Matriz de bytes |
| BSON | Matriz de bytes |
| BINARY | Matriz de bytes |
| FIXED_LEN_BYTE_ARRAY | Matriz de bytes |
Ao gravar dados no conector de destino no formato Parquet, os mapeamentos a seguir são usados de tipos de dados provisórios usados pelo serviço internamente para tipos de dados Parquet.
| Tipo de dados de serviço provisório | Tipo de parquet |
|---|---|
| booleano | BOOLEAN |
| SByte | INT_8 |
| Int16 | INT_32 |
| Int32 | INT_32 |
| Int64 | INT_64 |
| Byte | INT_32 |
| UInt16 | INT_32 |
| UInt32 | INT_64 |
| UInt64 | DECIMAL |
| Decimal | DECIMAL |
| Solteiro | FLOAT |
| Double | DUPLO |
| Date | DATE |
| DateTime | INT96 |
| DateTimeOffset | INT96 |
| TimeSpan | INT96 |
| String | UTF8 |
| GUID | UTF8 |
| Matriz de bytes | BINARY |
Para saber como a atividade de cópia mapeia o esquema de origem e o tipo de dados para o destino, consulte Mapeamentos de esquema e tipo de dados.
Atualmente, tipos de dados complexos de Parquet (por exemplo, MAP, LIST, STRUCT) são 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.