Compartilhar via


Formato Parquet no Data Factory no Microsoft Fabric

Neste artigo, detalha-se como configurar o formato Parquet no pipeline do Data Factory no Microsoft Fabric.

Funcionalidades com suporte

O formato Parquet tem suporte para as seguintes atividades e conectores como origem e destino.

Categoria Conector/Atividade
Conector compatível Amazônia S3
Compatível com o Amazon S3
Armazenamento de Blobs do Azure
Azure Data Lake Storage Gen1
Azure Data Lake Storage Gen2
Arquivos do Azure
Sistema de arquivos
FTP
Google Cloud Storage
HTTP
Arquivos do Lakehouse
Armazenamento em Nuvem Oracle
SFTP
Atividade com suporte atividade Copy (Origem/Destino)
Atividade de pesquisa
Atividade GetMetadata
Excluir atividade

Formato Parquet na atividade de cópia

Para configurar o formato Parquet, escolha sua conexão na origem ou no destino de uma atividade de cópia de pipeline e selecione Parquet na lista suspensa de formato de arquivo. Selecione Configurações para ver mais configurações desse formato.

Captura de tela mostrando as configurações de formato de arquivo.

Formato Parquet como origem

Depois de selecionar Configurações na seção Formato de arquivo, as seguintes propriedades são mostradas na caixa de diálogo pop-up Configurações de formato de arquivo.

Captura de tela mostrando a origem do formato de arquivo parquet.

  • Tipo de compactação: escolha o codec de compactação usado para ler arquivos Parquet na lista suspensa. Você pode escolher entre None, gzip (.gz), snappy, lzo, Brotli (.br), Zstandard, lz4, lz4frame, bzip2 (.bz2)ou lz4hadoop.

Formato Parquet como destino

Depois de selecionar Configurações, as seguintes propriedades são mostradas na caixa de diálogo pop-up Configurações de formato de arquivo.

Captura de tela mostrando a origem do formato de arquivo parquet.

  • Tipo de compactação: escolha o codec de compactação usado para ler arquivos Parquet na lista suspensa. Você pode escolher entre None, gzip (.gz), snappy, lzo, Brotli (.br), Zstandard, lz4, lz4frame, bzip2 (.bz2)ou lz4hadoop.

  • Usar Ordem V: habilite uma otimização de tempo de gravação para o formato de arquivo parquet. Para obter mais informações, consulte Otimização de tabela do Delta Lake e V-Order. Ele é habilitado por padrão.

Em Configurações avançadas na guia Destino , as seguintes propriedades relacionadas ao formato Parquet são exibidas.

  • Máximo de linhas por arquivo: ao gravar dados em uma pasta, você pode optar por gravar em vários arquivos e especificar o máximo de linhas por arquivo. Especifique as linhas máximas que você deseja gravar por arquivo.
  • Prefixo de nome de arquivo: aplicável quando o máximo de linhas por arquivo é 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 origem é um repositório baseado em arquivo ou um armazenamento de dados habilitado para uma opção de partição.

Mapeamento

Para a configuração da guia Mapeamento, caso você não use o formato Parquet como seu armazenamento de dados de destino, vá para Mapeamento.

Editar tipos de dados de destino

Ao copiar dados para o conector de destino no formato Parquet, exceto a configuração no Mapeamento, você pode especificar determinados tipos de coluna de destino depois de habilitar as configurações de tipo Parquet Avançado. Você também pode configurar a opção IsNullable para especificar se cada coluna de destino Parquet permite valores nulos. O valor padrão para IsNullable é true.

Os mapeamentos a seguir são utilizados para converter tipos de dados provisórios, que têm suporte para edição pelo serviço internamente, em tipos de dados Parquet.

Tipo de dados de serviço provisório Tipo lógico Parquet Tipo físico parquet
DateTime Opção 1: nulo
Opção 2: TIMESTAMP
Opção 1: INT96 (padrão)
Opção 2: INT64 (Unidade: MILLIS, MICROS, NANOS (padrão))
DateTimeOffset Opção 1: nulo
Opção 2: TIMESTAMP
Opção 1: INT96 (padrão)
Opção 2: INT64 (Unidade: MILLIS, MICROS, NANOS (padrão))
TimeSpan TIME INT32 (Unidade: MILLIS)
INT64 (Unidade: MICROS, NANOS (padrão))
Decimal DECIMAL INT32 (1 <= precisão <= 9)
INT64 (9 < precisão <= 18)
FIXED_LEN_BYTE_ARRAY (precisão > 18) (padrão)
GUID Opção 1: STRING
Opção 2: UUID
Opção 1: BYTE_ARRAY (padrão)
Opção 2: FIXED_LEN_BYTE_ARRAY
Matriz de bytes nulo BYTE_ARRAY (padrão) ou FIXED_LEN_BYTE_ARRAY

Por exemplo, o tipo da coluna decimalData na origem é convertido em um tipo provisório de serviço: Decimal. De acordo com a tabela de mapeamento acima, o tipo mapeado para a coluna de destino é determinado automaticamente de acordo com a precisão especificada. Se a precisão for 9 ou menos, ela será mapeada para INT32. Para valores de precisão acima de 9 e até 18, ele é mapeado para INT64. Se a precisão exceder 18, ela será mapeada para FIXED_LEN_BYTE_ARRAY.

Captura de tela do tipo de coluna de destino de mapeamento.

Mapeamento de tipo de dados para Parquet

Ao copiar dados do conector de origem no formato Parquet, os mapeamentos a seguir são usados de tipos de dados Parquet para tipos de dados provisórios usados pelo serviço internamente.

Tipo lógico Parquet Tipo físico parquet Tipo de dados de serviço provisório
nulo BOOLEAN booleano
INT(8, true) INT32 SByte
INT(8, false) INT32 Byte
INT(16, true) INT32 Int16
INT(16, false) INT32 UInt16
INT(32, true) INT32 Int32
INT(32, false) INT32 UInt32
INT(64, true) INT64 Int64
INT(64, false) INT64 UInt64
nulo FLOAT Solteiro
nulo DOBRAR Double
DECIMAL INT32, INT64, FIXED_LEN_BYTE_ARRAY ou BYTE_ARRAY Decimal
DATE INT32 Date
TIME INT32 ou INT64 DateTime
TIMESTAMP INT64 DateTime
ENUM BYTE_ARRAY String
UUID FIXED_LEN_BYTE_ARRAY GUID
nulo BYTE_ARRAY Matriz de bytes
STRING BYTE_ARRAY String

Ao copiar dados para o 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 lógico Parquet Tipo físico parquet
booleano nulo BOOLEAN
SByte INT INT32
Byte INT INT32
Int16 INT INT32
UInt16 INT INT32
Int32 INT INT32
UInt32 INT INT32
Int64 INT INT64
UInt64 INT INT64
Solteiro nulo FLOAT
Double nulo DOBRAR
DateTime nulo INT96
DateTimeOffset nulo INT96
Date DATE INT32
TimeSpan TIME INT64
Decimal DECIMAL INT32, INT64 ou FIXED_LEN_BYTE_ARRAY
GUID STRING BYTE_ARRAY
String STRING BYTE_ARRAY
Matriz de bytes nulo BYTE_ARRAY

Resumo da tabela

Parquet como fonte

As propriedades a seguir têm suporte na seção Origem da atividade de cópia ao usar o formato de texto delimitado.

Nome Descrição Valor Obrigatório Propriedade de script JSON
Formato de arquivo O formato de arquivo que você deseja usar. Parquet Sim tipo (em datasetSettings):
Parquet
Tipo de compactação O codec de compactação usado para ler/gravar arquivos binários. Escolha entre:
Nenhuma
gzip (.gz)
snappy
lzo
Brotli (.br)
Zstandard
lz4
lz4frame
bzip2 (.bz2)
lz4hadoop
Não compressionCodec:

gzip
snappy
lzo
brotli
zstd
lz4
lz4frame
bz2
lz4hadoop

Parquet como destino

As propriedades a seguir são compatíveis na seção Destino da atividade de cópia ao usar o formato de texto delimitado.

Nome Descrição Valor Obrigatório Propriedade de script JSON
Formato de arquivo O formato de arquivo que você deseja usar. Parquet Sim tipo (em datasetSettings):
Parquet
Usar ordem V Uma otimização de tempo de gravação para o formato de arquivo parquet. Selecionado ou não selecionado Não enableVertiParquet
Tipo de compactação O codec de compactação usado para ler/gravar arquivos binários. Escolha entre:
Nenhuma
gzip (.gz)
snappy
lzo
Brotli (.br)
Zstandard
lz4
lz4frame
bzip2 (.bz2)
lz4hadoop
Não compressionCodec:

gzip
snappy
lzo
brotli
zstd
lz4
lz4frame
bz2
lz4hadoop
Máximo de linhas por arquivo Ao gravar dados em uma pasta, você pode optar por gravar em vários arquivos e especificar o máximo de linhas por arquivo. Especifique as linhas máximas que você deseja gravar por arquivo. <suas linhas máximas por arquivo > Não maxRowsPerFile
Prefixo de nome de arquivo Aplicável quando o Máximo de linhas por arquivo é 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 origem é um repositório baseado em arquivo ou um armazenamento de dados habilitado para uma opção de partição. <o prefixo do seu nome de arquivo > Não fileNamePrefix