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: SQL Server 2016 (13.x) e versões
posteriores Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL database in Microsoft Fabric
Cria um objeto de formato de ficheiro externo que define dados externos armazenados em Hadoop, Azure Blob Storage, Azure Data Lake Store, OneLake no Microsoft Fabric, ou para os fluxos de entrada e saída associados a fluxos externos. Criar um formato de arquivo externo é um pré-requisito para criar uma tabela externa. Ao criar um formato de arquivo externo, você especifica o layout real dos dados referenciados por uma tabela externa. Para criar uma tabela externa, consulte CREATE EXTERNAL TABLE (Transact-SQL).
Os seguintes formatos de ficheiro são suportados:
Texto delimitado
A base de dados SQL no Microsoft Fabric suporta apenas o formato CSV de texto delimitado.
Colmeia RCFile
Não se aplica ao Azure Synapse Analytics, Azure SQL Managed Instance, Azure SQL Database, SQL database no Microsoft Fabric ou SQL Server 2022 (16.x).
Colmeia ORC
Não se aplica ao Azure Synapse Analytics, Azure SQL Managed Instance, Azure SQL Database, SQL database no Microsoft Fabric ou SQL Server 2022 (16.x).
Parquet
JSON
Aplica-se apenas ao Azure SQL Edge. Para obter informações sobre como usar
OPENROWSETpara importar dados JSON em outras plataformas, consulte Importar documentos JSON para o SQL Server ou Consultar arquivos JSON usando o pool SQL sem servidor no Azure Synapse Analytics.Delta;
Aplica-se apenas a pools SQL serverless no Azure Synapse Analytics, Azure SQL Database, SQL Server 2022 (16.x) e versões posteriores. Você pode consultar Delta Lake versão 1.0. Não há suporte para alterações introduzidas desde então, no Delta Lake 1.2, como renomear colunas. Se você estiver usando as versões superiores do Delta com vetores de exclusão, pontos de verificação v2 e outros recursos, considere usar outros mecanismos de consulta, como o ponto de extremidade de análise SQL do Microsoft Fabric para Lakehouses.
Transact-SQL convenções de sintaxe
Sintaxe
-- Create an external file format for DELIMITED (CSV/TSV) files.
CREATE EXTERNAL FILE FORMAT file_format_name
WITH (
FORMAT_TYPE = DELIMITEDTEXT
[ , FORMAT_OPTIONS ( <format_options> [ ,...n ] ) ]
[ , DATA_COMPRESSION = {
'org.apache.hadoop.io.compress.GzipCodec'
}
]);
<format_options> ::=
{
FIELD_TERMINATOR = field_terminator
| STRING_DELIMITER = string_delimiter
| FIRST_ROW = integer -- Applies to: Azure Synapse Analytics and SQL Server 2022 and later versions
| DATE_FORMAT = datetime_format
| USE_TYPE_DEFAULT = { TRUE | FALSE }
| ENCODING = {'UTF8' | 'UTF16'}
| PARSER_VERSION = {'parser_version'}
}
Argumentos
file_format_name
Especifica um nome para o formato de arquivo externo.
TIPO_DE_FORMATO
Especifica o formato dos dados externos.
FORMAT_TYPE = PARQUET
Especifica um formato Parquet.
FORMAT_TYPE = ORC
Especifica um formato ORC (Optimized Row Columnar). Essa opção requer o Hive versão 0.11 ou superior no cluster Hadoop externo. No Hadoop, o formato de arquivo ORC oferece melhor compactação e desempenho do que o formato de arquivo RCFILE.
FORMAT_TYPE = RCFILE, SERDE_METHOD = SERDE_method
Especifica um formato de arquivo Record Columnar (RcFile). Esta opção requer que você especifique um método Hive Serializer and Deserializer (SerDe). Esse requisito é o mesmo se você usar o Hive/HiveQL no Hadoop para consultar arquivos RC. Observe que o método SerDe diferencia maiúsculas de minúsculas.
Exemplos de especificação do RCFile com os dois métodos SerDe suportados pelo PolyBase.
FORMAT_TYPE = RCFILE, SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe'FORMAT_TYPE = RCFILE, SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe'
FORMAT_TYPE = TEXTO DELIMITADO
Especifica um formato de texto com delimitadores de coluna, também conhecidos como terminadores de campo.
FORMAT_TYPE = JSON
Especifica um formato JSON. Aplica-se apenas ao Azure SQL Edge.
FORMAT_TYPE = DELTA
Especifica um formato Delta Lake. Aplica-se a pools SQL sem servidor no Azure Synapse Analytics e no SQL Server 2022 (16.x).
FORMAT_OPTIONS
Opcional. Apenas para tipos de dados de texto delimitados.
Apenas pools SQL sem servidor no Azure Synapse Analytics suportam PARSER_VERSION.
Os pools SQL sem servidor não oferecem suporte à DATE_FORMAT opção.
DATA_COMPRESSION = data_compression_method
Especifica o método de compactação de dados para os dados externos. Quando DATA_COMPRESSION não é especificado, o padrão é dados não compactados.
Para funcionar corretamente, os arquivos compactados Gzip devem ter a extensão de .gz arquivo.
O DELIMITEDTEXT tipo de formato suporta este método de compressão: DATA_COMPRESSION = org.apache.hadoop.io.compress.GzipCodec
Opções de formato de texto delimitado
As opções de formato descritas nesta seção são opcionais e só se aplicam a arquivos de texto delimitados.
FIELD_TERMINATOR = field_terminator
Aplica-se apenas a ficheiros de texto delimitados. O terminador de campo especifica um ou mais caracteres que marcam o final de cada campo (coluna) no arquivo delimitado por texto. O padrão é o caractere |pipe . Para suporte garantido, recomendamos o uso de um ou mais caracteres ASCII.
Exemplos:
FIELD_TERMINATOR = '|'FIELD_TERMINATOR = ' 'FIELD_TERMINATOR = ꞌ\tꞌFIELD_TERMINATOR = '~|~'
STRING_DELIMITER
STRING_DELIMITER = *string_delimiter*
Especifica um caractere que inclui os valores textuais no arquivo delimitado por texto. O padrão é a cadeia de caracteres vazia "". O valor de STRING_DELIMITER é funcionalmente equivalente à opção FIELDQUOTE na OPENROWSET BULK função.
Observação
As tabelas Hadoop em pools SQL dedicados Synapse permitem especificar um ou mais caracteres em STRING_DELIMITER. No pool SQL sem servidor, você pode usar apenas um caractere.
Exemplos:
STRING_DELIMITER = '"'STRING_DELIMITER = '0x22'(Aspas duplas hex)STRING_DELIMITER = '*'STRING_DELIMITER = ꞌ,ꞌSTRING_DELIMITER = '0x7E0x7E'(Dois tils, por exemplo,~~) - suportado em pool SQL dedicado.
FIRST_ROW = first_row_int
Aplica-se a: Azure Synapse Analytics, SQL Server 2022 e versões posteriores
Especifica o número da linha que é lido primeiro em todos os arquivos durante um carregamento do PolyBase. Este parâmetro pode ter valores de 1 a 15. Se o valor for definido como dois, a primeira linha em cada arquivo (linha de cabeçalho) será ignorada quando os dados forem carregados. As linhas são ignoradas com base na existência de terminadores de linha (/r/n, /r, /n). Quando essa opção é usada para exportação, linhas são adicionadas aos dados para garantir que o arquivo possa ser lido sem perda de dados. Se o valor for definido como >2, a primeira linha exportada será os nomes de coluna da tabela externa.
DATE_FORMAT = datetime_format
Especifica um formato personalizado para todos os dados de data e hora que podem aparecer em um arquivo de texto delimitado. Se o arquivo de origem usar formatos de data/hora padrão, essa opção não será necessária. Apenas um formato datetime personalizado é permitido por arquivo. Não é possível especificar mais de um formato datetime personalizado por arquivo. No entanto, você pode usar mais de um formato datetime se cada um for o formato padrão para seu respetivo tipo de dados na definição de tabela externa.
Importante
O PolyBase usa apenas o formato de data personalizado para importar os dados. Ele não usa o formato personalizado para gravar dados em um arquivo externo.
Quando DATE_FORMAT não é especificado ou é a cadeia de caracteres vazia, o PolyBase usa os seguintes formatos padrão:
Data:
'yyyy-MM-dd HH:mm:ss'SmallDateTime:
'yyyy-MM-dd HH:mm'data:
'yyyy-MM-dd'datahora2:
'yyyy-MM-dd HH:mm:ss'DataTempoOffset:
'yyyy-MM-dd HH:mm:ss'tempo:
'HH:mm:ss'
Importante
A especificação personalizada DATE_FORMAT substitui todos os formatos de tipo padrão. Isso significa que você precisará ter os mesmos formatos de data em todas as células de data/hora, data e hora em seus arquivos. Com o substituído DATE_FORMAT, você não pode ter valores de data e hora em formato diferente.
Exemplos de formatos de data estão na tabela a seguir:
Notas sobre a tabela:
Ano, mês e dia podem ter vários formatos e pedidos. A tabela mostra apenas o formato ymd . Mês pode ter um ou dois dígitos, ou três caracteres. Dia pode ter um ou dois dígitos. Ano pode ter dois ou quatro dígitos.
Milissegundos (
fffffff) não são necessários.amoupm(tt) não é obrigatório. A predefinição éAM.
| Tipo de data | Exemplo | Descrição |
|---|---|---|
| datetime | DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fff |
Além do ano, mês e dia, este formato de data inclui 00-24 horas, 00-59 minutos, 00-59 segundos e três dígitos por milissegundos. |
| datetime | DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffftt |
Além do ano, mês e dia, este formato de data inclui 00-12 horas, 00-59 minutos, 00-59 segundos, três dígitos por milissegundos e AM, am, PM, ou pm. |
| PequenoDateTime | DATE_FORMAT = yyyy-MM-dd HH:mm |
Além do ano, mês e dia, este formato de data inclui 00-23 horas, 00-59 minutos. |
| PequenoDateTime | DATE_FORMAT = yyyy-MM-dd hh:mmtt |
Além do ano, mês e dia, este formato de data inclui 00-11 horas, 00-59 minutos, sem segundos, e AM, am, PM, ou pm. |
| data | DATE_FORMAT = yyyy-MM-dd |
Ano, mês e dia. Nenhum elemento de tempo está incluído. |
| data | DATE_FORMAT = yyyy-MMM-dd |
Ano, mês e dia. Quando mês é especificado com MMM, o valor de entrada é um ou as cadeias de caracteres, Jan, Feb, Mar, Apr, MayJun, Jul, AugSepOctNovou .Dec |
| datetime2 | DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff |
Além de ano, mês e dia, esse formato de data inclui 00-23 horas, 00-59 minutos, 00-59 segundos e sete dígitos por milissegundos. |
| datetime2 | DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt |
Além de ano, mês e dia, este formato de data inclui 00-11 horas, 00-59 minutos, 00-59 segundos, sete dígitos para milissegundos e AM, am, PM, ou pm. |
| datetimeoffset | DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff zzz |
Além de ano, mês e dia, esse formato de data inclui 00-23 horas, 00-59 minutos, 00-59 segundos e 7 dígitos por milissegundos, e o deslocamento de fuso horário que você coloca no arquivo de entrada como {+|-}HH:ss. Por exemplo, como o horário de Los Angeles sem horário de verão está 8 horas atrás do UTC, um valor de -08:00 no arquivo de entrada especifica o fuso horário para Los Angeles. |
| datetimeoffset | DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt zzz |
Além de ano, mês e dia, esse formato de data inclui 00-11 horas, 00-59 minutos, 00-59 segundos, sete dígitos para milissegundos, (AM, am, PM, ou pm), e o deslocamento de fuso horário. Veja a descrição na linha anterior. |
| Tempo | DATE_FORMAT = HH:mm:ss |
Não há valor de data, apenas 00-23 horas, 00-59 minutos e 00-59 segundos. |
Formatos de data e hora suportados
O formato de arquivo externo pode descrever um grande número de formatos de data e hora:
| datetime | PequenoDateTime | data | datetime2 | datetimeoffset |
|---|---|---|---|---|
[M[M]]M-[d]d-[yy]yy HH:mm:ss[.fff] |
[M[M]]M-[d]d-[yy]yy HH:mm[:00] |
[M[M]]M-[d]d-[yy]yy |
[M[M]]M-[d]d-[yy]yy HH:mm:ss[.fffffff] |
[M[M]]M-[d]d-[yy]yy HH:mm:ss[.fffffff] zzz |
[M[M]]M-[d]d-[yy]yy hh:mm:ss[.fff][tt] |
[M[M]]M-[d]d-[yy]yy hh:mm[:00][tt] |
[M[M]]M-[d]d-[yy]yy hh:mm:ss[.fffffff][tt] |
[M[M]]M-[d]d-[yy]yy hh:mm:ss[.fffffff][tt] zzz |
|
[M[M]]M-[yy]yy-[d]d HH:mm:ss[.fff] |
[M[M]]M-[yy]yy-[d]d HH:mm[:00] |
[M[M]]M-[yy]yy-[d]d |
[M[M]]M-[yy]yy-[d]d HH:mm:ss[.fffffff] |
[M[M]]M-[yy]yy-[d]d HH:mm:ss[.fffffff] zzz |
[M[M]]M-[yy]yy-[d]d hh:mm:ss[.fff][tt] |
[M[M]]M-[yy]yy-[d]d hh:mm[:00][tt] |
[M[M]]M-[yy]yy-[d]d hh:mm:ss[.fffffff][tt] |
[M[M]]M-[yy]yy-[d]d hh:mm:ss[.fffffff][tt] zzz |
|
[yy]yy-[M[M]]M-[d]d HH:mm:ss[.fff] |
[yy]yy-[M[M]]M-[d]d HH:mm[:00] |
[yy]yy-[M[M]]M-[d]d |
[yy]yy-[M[M]]M-[d]d HH:mm:ss[.fffffff] |
[yy]yy-[M[M]]M-[d]d HH:mm:ss[.fffffff] zzz |
[yy]yy-[M[M]]M-[d]d hh:mm:ss[.fff][tt] |
[yy]yy-[M[M]]M-[d]d hh:mm[:00][tt] |
[yy]yy-[M[M]]M-[d]d hh:mm:ss[.fffffff][tt] |
[yy]yy-[M[M]]M-[d]d hh:mm:ss[.fffffff][tt] zzz |
|
[yy]yy-[d]d-[M[M]]M HH:mm:ss[.fff] |
[yy]yy-[d]d-[M[M]]M HH:mm[:00] |
[yy]yy-[d]d-[M[M]]M |
[yy]yy-[d]d-[M[M]]M HH:mm:ss[.fffffff] |
[yy]yy-[d]d-[M[M]]M HH:mm:ss[.fffffff] zzz |
[yy]yy-[d]d-[M[M]]M hh:mm:ss[.fff][tt] |
[yy]yy-[d]d-[M[M]]M hh:mm[:00][tt] |
[yy]yy-[d]d-[M[M]]M hh:mm:ss[.fffffff][tt] |
[yy]yy-[d]d-[M[M]]M hh:mm:ss[.fffffff][tt] zzz |
|
[d]d-[M[M]]M-[yy]yy HH:mm:ss[.fff] |
[d]d-[M[M]]M-[yy]yy HH:mm[:00] |
[d]d-[M[M]]M-[yy]yy |
[d]d-[M[M]]M-[yy]yy HH:mm:ss[.fffffff] |
[d]d-[M[M]]M-[yy]yy HH:mm:ss[.fffffff] zzz |
[d]d-[M[M]]M-[yy]yy hh:mm:ss[.fff][tt] |
[d]d-[M[M]]M-[yy]yy hh:mm[:00][tt] |
[d]d-[M[M]]M-[yy]yy hh:mm:ss[.fffffff][tt] |
[d]d-[M[M]]M-[yy]yy hh:mm:ss[.fffffff][tt] zzz |
|
[d]d-[yy]yy-[M[M]]M HH:mm:ss[.fff] |
[d]d-[yy]yy-[M[M]]M HH:mm[:00] |
[d]d-[yy]yy-[M[M]]M |
[d]d-[yy]yy-[M[M]]M HH:mm:ss[.fffffff] |
[d]d-[yy]yy-[M[M]]M HH:mm:ss[.fffffff] zzz |
[d]d-[yy]yy-[M[M]]M hh:mm:ss[.fff][tt] |
[d]d-[yy]yy-[M[M]]M hh:mm[:00][tt] |
[d]d-[yy]yy-[M[M]]M hh:mm:ss[.fffffff][tt] |
[d]d-[yy]yy-[M[M]]M hh:mm:ss[.fffffff][tt] zzz |
Detalhes:
Para separar valores de mês, dia e ano, você deve usar um dos seguintes separadores:
-,/, ou.. Para simplificar, a tabela usa apenas o-separador.Para especificar o mês como texto, use três ou mais caracteres. Os meses com um ou dois caracteres são interpretados como um número.
Para separar valores de tempo, use o
:símbolo.As letras entre parênteses retos são opcionais.
As letras
ttdesignam [AM|PM|am|pm].AMé o padrão. Quandotté especificado, o valor da hora (hh) deve estar no intervalo de 0 a 12.As letras
zzzdesignam o deslocamento de fuso horário para o fuso horário atual do sistema no formato{+|-}HH:ss].
USE_TYPE_DEFAULT = { VERDADEIRO | FALSO }
Especifica como lidar com valores ausentes em arquivos de texto delimitados quando o PolyBase recupera dados do arquivo de texto. O valor padrão é FALSE.
VERDADEIRO
Ao recuperar dados do arquivo de texto, armazene cada valor ausente usando o valor padrão para o tipo de dados da coluna correspondente na definição de tabela externa. Por exemplo, substitua um valor ausente por:
0se a coluna for definida como uma coluna numérica. As colunas decimais não são suportadas e apresentam erros.Cadeia de caracteres vazia "" se a coluna for uma coluna de cadeia de caracteres.
1900-01-01se a coluna for uma coluna de data.No Azure Synapse Analytics,
USE_TYPE_DEFAULT=truenão há suporte paraFORMAT_TYPE = DELIMITEDTEXT, PARSER_VERSION = '2.0'.
FALSO
Armazene todos os valores ausentes como
NULL. Todos osNULLvalores armazenados usando a palavraNULLno arquivo de texto delimitado são importados como a cadeia de caracteresNULL.
CODIFICAÇÃO = {'UTF8' | 'UTF16'}
No Azure Synapse Analytics and Analytics Platform System (PDW) (APS CU7.4), o PolyBase pode ler UTF8 e UTF16-LE arquivos de texto delimitados codificados.
No SQL Server, o PolyBase não oferece suporte à leitura de arquivos codificados UTF16.
Permissões
Requer a permissão ALTER ANY EXTERNAL FILE FORMAT.
Observações
O formato de arquivo externo tem escopo de banco de dados no SQL Server e no Azure Synapse Analytics. Ele tem escopo de servidor no Analytics Platform System (PDW).
O formato Hadoop é apenas suportado no SQL Server 2016, 2017 e 2019.
As opções de formato são todas opcionais e aplicam-se apenas a ficheiros de texto delimitados.
Quando os dados são armazenados em um dos formatos compactados, o PolyBase primeiro descompacta os dados antes de retornar os registros de dados.
A base de dados SQL no Microsoft Fabric suporta apenas formato CSV de texto delimitado e formatos de ficheiro Parquet. A base de dados SQL do Fabric só suporta o OneLake no Microsoft Fabric como fonte de dados.
Limitações
O delimitador de linha em arquivos de texto delimitado deve ser suportado pelo LineRecordReader do Hadoop. Ou seja, deve ser ou \r, \nou \r\n. Esses delimitadores não são configuráveis pelo usuário.
As combinações de métodos SerDe suportados com RCFiles e os métodos de compressão de dados suportados estão listados anteriormente neste artigo. Nem todas as combinações são suportadas.
O número máximo de consultas PolyBase simultâneas é 32. Quando 32 consultas simultâneas estão em execução, cada consulta pode ler um máximo de 33.000 arquivos do local do arquivo externo. A pasta raiz e cada subpasta também contam como um arquivo. Se o grau de simultaneidade for menor que 32, o local do arquivo externo pode conter mais de 33.000 arquivos.
Devido à limitação do número de arquivos na tabela externa, recomendamos armazenar menos de 30.000 arquivos na raiz e nas subpastas do local do arquivo externo. Além disso, recomendamos manter o número de subpastas sob o diretório raiz para um número pequeno. Quando muitos arquivos são referenciados, uma exceção de falta de memória da Java Virtual Machine pode ocorrer.
Ao exportar dados para Hadoop ou Armazenamento de Blobs do Azure via PolyBase, somente os dados são exportados, não os nomes das colunas (metadados), conforme definido no comando CREATE EXTERNAL TABLE.
Bloqueio
Usa um bloqueio compartilhado no objeto EXTERNAL FILE FORMAT.
Desempenho
O uso de arquivos compactados sempre vem com a compensação entre transferir menos dados entre a fonte de dados externa e o SQL Server e, ao mesmo tempo, aumentar o uso da CPU para compactar e descompactar os dados.
Os ficheiros de texto comprimido Gzip não são divididos. Para melhorar o desempenho de arquivos de texto compactados Gzip, recomendamos gerar vários arquivos que são todos armazenados no mesmo diretório dentro da fonte de dados externa. Essa estrutura de arquivos permite que o PolyBase leia e descompacte os dados mais rapidamente usando vários leitores e processos de descompressão. O número ideal de arquivos compactados é o número máximo de processos de leitor de dados por nó de computação. No SQL Server
No Analytics Platform System (PDW), o número máximo de processos de leitura de dados é 8 por nó. No Azure Synapse Analytics, o número máximo de processos de leitor de dados é de 20 leitores por nó.
Exemplos
Um. Criar um formato de arquivo externo DELIMITEDTEXT
Este exemplo cria um formato de arquivo externo chamado textdelimited1 para um arquivo delimitado por texto. As opções listadas para FORMAT_OPTIONS especificam que os campos no arquivo devem ser separados usando um caractere |pipe . O arquivo de texto também é compactado com o codec Gzip. Se DATA_COMPRESSION não for especificado, o arquivo de texto será descompactado.
Para um arquivo de texto delimitado, o método de compactação de dados pode ser o Codec padrão, org.apache.hadoop.io.compress.DefaultCodec, ou o Codec Gzip, org.apache.hadoop.io.compress.GzipCodec.
CREATE EXTERNAL FILE FORMAT textdelimited1
WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (
FIELD_TERMINATOR = '|',
DATE_FORMAT = 'MM/dd/yyyy' ),
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.GzipCodec'
);
B. Criar um formato de ficheiro externo RCFile
Este exemplo cria um formato de arquivo externo para um RCFile que usa o serialization/deserialization método org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe. Ele também especifica para usar o Codec padrão para o método de compactação de dados. Se DATA_COMPRESSION não for especificado, o padrão será sem compactação.
CREATE EXTERNAL FILE FORMAT rcfile1
WITH (
FORMAT_TYPE = RCFILE,
SERDE_METHOD = 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe',
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.DefaultCodec'
);
C. Criar um formato de arquivo externo ORC
Este exemplo cria um formato de arquivo externo para um arquivo ORC que compacta os dados com o método de compactação de org.apache.io.compress.SnappyCodec dados. Se DATA_COMPRESSION não for especificado, o padrão será sem compactação.
CREATE EXTERNAL FILE FORMAT orcfile1
WITH (
FORMAT_TYPE = ORC,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
D. Criar um formato de arquivo externo PARQUET
Este exemplo cria um formato de arquivo externo para um arquivo Parquet que compacta os dados com o método de compactação de org.apache.io.compress.SnappyCodec dados. Se DATA_COMPRESSION não for especificado, o padrão será sem compactação.
CREATE EXTERNAL FILE FORMAT parquetfile1
WITH (
FORMAT_TYPE = PARQUET,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
E. Criar um arquivo de texto delimitado ignorando a linha de cabeçalho
Aplica-se a: Azure Synapse Analytics e SQL Server 2022 (16.x) e posterior.
Este exemplo cria um formato de arquivo externo para o arquivo CSV com uma única linha de cabeçalho. Para obter mais informações, consulte Virtualizar arquivo CSV com PolyBase.
CREATE EXTERNAL FILE FORMAT skipHeader_CSV
WITH (FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS(
FIELD_TERMINATOR = ',',
STRING_DELIMITER = '"',
FIRST_ROW = 2,
USE_TYPE_DEFAULT = True)
);
F. Criar um formato de arquivo externo JSON
Aplica-se a: Azure SQL Edge.
Este exemplo cria um formato de arquivo externo para um arquivo JSON que compacta os dados com o método de compactação de org.apache.io.compress.SnappyCodec dados. Se DATA_COMPRESSION não for especificado, o padrão será sem compactação. Este exemplo aplica-se ao Azure SQL Edge e atualmente não tem suporte para outros produtos SQL.
CREATE EXTERNAL FILE FORMAT jsonFileFormat
WITH (
FORMAT_TYPE = JSON,
DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);
G. Criar um formato de arquivo externo de tabela delta
Este exemplo cria um formato de arquivo externo para o formato de arquivo do tipo tabela Delta. Este exemplo se aplica ao SQL Server 2022 (16.x). Para obter mais informações, consulte Virtualizar tabela delta com PolyBase.
CREATE EXTERNAL FILE FORMAT DeltaFileFormat
WITH (
FORMAT_TYPE = DELTA
);