Compartilhar via


CRIAR FORMATO DE ARQUIVO EXTERNO (Transact-SQL)

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores do Banco de Dados SQL doAzure Azure Instância Gerenciadado Azure Synapse Analytics AnalyticsPlatform System (PDW)banco de dados SQL no Microsoft Fabric

Cria um objeto de formato de arquivo 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ê especificará o layout real dos dados referenciados por uma tabela externa. Para criar uma tabela externa, confira CREATE EXTERNAL TABLE (Transact-SQL).

Os seguintes formatos de arquivo são compatíveis:

Convenções de sintaxe de Transact-SQL

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 do Hadoop externo. No Hadoop, o formato de arquivo ORC oferece melhor compactação e desempenho que o formato de arquivo RCFILE.

  • FORMAT_TYPE = arquivo RC, SERDE_METHOD = SERDE_method

    Especifica um formato de arquivo RcFile (Record Columnar). Essa opção requer que você especifique um método SerDe (serializador e desserializador) do Hive. Esse requisito é o mesmo para 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 de RCFile com os dois métodos SerDe compatíveis com o 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 = DELIMITADOTEXT

    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 somente ao SQL do Azure no Edge.

  • FORMAT_TYPE = DELTA

    Especifica um formato Delta Lake. Aplica-se aos pools de SQL sem servidor no Azure Synapse Analytics e ao SQL Server 2022 (16.x).

FORMAT_OPTIONS

Opcional. Somente para tipos de dados de texto delimitados.

Somente os pools de SQL sem servidor no Azure Synapse Analytics suportam PARSER_VERSION.

Pools de SQL sem servidor não dão suporte à opção DATE_FORMAT .

DATA_COMPRESSION = data_compression_method

Especifica o método de compactação de dados para os dados externos. Quando DATA_COMPRESSION não for especificado, o padrão são dados descompactados.

Para funcionar corretamente, os arquivos compactados Gzip devem ter a extensão de .gz arquivo.

O DELIMITEDTEXT tipo de formato dá suporte a este método de compactaçã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 delimitado.

FIELD_TERMINATOR = field_terminator

Aplica-se somente a arquivos de texto delimitado. O terminador de campo especifica um ou mais caracteres que marcam o final de cada campo (coluna) no arquivo de texto delimitado. O padrão é o caractere barra vertical |. Para garantir o suporte, é recomendável usar 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 é STRING_DELIMITER funcionalmente equivalente à opção FIELDQUOTE na OPENROWSET BULK função.

Observação

As tabelas do Hadoop nos pools de SQL dedicados do Synapse permitem especificar um ou mais caracteres em STRING_DELIMITER. No pool de SQL sem servidor, você pode usar apenas um caractere.

Exemplos:

  • STRING_DELIMITER = '"'

  • STRING_DELIMITER = '0x22' (Hexadecimal com aspas duplas)

  • STRING_DELIMITER = '*'

  • STRING_DELIMITER = ꞌ,ꞌ

  • STRING_DELIMITER = '0x7E0x7E' (Dois blocos, por exemplo, ~~) – com suporte no pool de SQL dedicado.

FIRST_ROW = first_row_int

Aplicável a: Azure Synapse Analytics, SQL Server 2022 e versões posteriores

Especifica o número de linha lido primeiro em todos os arquivos durante o carregamento do PolyBase. Esse parâmetro pode receber valores de 1 a 15. Se o valor for definido como dois, a primeira linha em todos os arquivos (linha de cabeçalho) será ignorada quando os dados forem carregados. As linhas são ignoradas com base na existência de terminadores de linhas (/r/n, /r, /n). Quando essa opção é usada para exportação, as 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á a de nomes de colunas 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 os formatos datetime 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ê poderá usar mais de um formato datetime se cada um deles estiver no formato padrão do tipo de dados respectivo na definição da tabela externa.

Importante

O PolyBase só usa 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 for especificado ou for a cadeia de caracteres vazia, o PolyBase usará 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'

  • SetTempoTempoOffset: 'yyyy-MM-dd HH:mm:ss'

  • tempo: 'HH:mm:ss'

Importante

Especificar substituições personalizadas DATE_FORMAT em todos os formatos de tipo padrão. Ou seja, você precisará ter os mesmos formatos de data em todas as células de datetime, data e hora em seus arquivos. Com a substituição DATE_FORMAT, você não pode ter valores de data e hora em formato diferente.

Há exemplos de formatos de data na tabela a seguir:

Observações sobre a tabela:

  • Ano, mês e dia podem ter vários formatos e ordens. A tabela mostra apenas o formato amd. 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.

  • am ou pm (tt) não é necessário. O padrão é AM.

Tipo de data Exemplo Descrição
data e hora DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fff Além do ano, mês e dia, esse formato de data inclui de 00 a 24 horas, 00 a 59 minutos, 00 a 59 segundos e três dígitos para milissegundos.
data e hora DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffftt Além do ano, mês e dia, este formato de data inclui de 00 a 12 horas, 00 a 59 minutos, 00 a 59 segundos, três dígitos para milissegundos e AM, am, PMou pm.
smalldatetime DATE_FORMAT = yyyy-MM-dd HH:mm Além de ano, mês e dia, esse formato de data inclui 00 a 23 horas e 00 a 59 minutos.
smalldatetime DATE_FORMAT = yyyy-MM-dd hh:mmtt Além do ano, mês e dia, esse formato de data inclui de 00 a 11 horas, 00 a 59 minutos, sem segundos e AM, , am, PMou pm.
data DATE_FORMAT = yyyy-MM-dd Ano, mês e dia. Não é incluído nenhum elemento de hora.
data DATE_FORMAT = yyyy-MMM-dd Ano, mês e dia. Quando o mês é especificado com MMM, o valor de entrada é uma ou são as cadeias de caracteres, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov ou Dec.
datetime2 DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff Além do ano, mês e dia, esse formato de data inclui de 00 a 23 horas, 00 a 59 minutos, 00 a 59 segundos e sete dígitos para milissegundos.
datetime2 DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt Além do ano, mês e dia, este formato de data inclui de 00 a 11 horas, 00 a 59 minutos, 00 a 59 segundos, sete dígitos para milissegundos e AM, am, PMou 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 a 23 horas, 00 a 59 minutos, 00 a 59 segundos, 7 dígitos para milissegundos e a diferença de fuso horário que você coloca no arquivo de entrada como {+&#124;-}HH:ss. Por exemplo, com o horário de Los Angeles sem horário de verão está 8 horas atrás do UTC, o valor -08:00 no arquivo de entrada especifica o fuso horário de Los Angeles.
datetimeoffset DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt zzz Além do ano, mês e dia, esse formato de data inclui de 00 a 11 horas, 00 a 59 minutos, 00 a 59 segundos, sete dígitos para milissegundos, (AM, am, PMou pm), e o deslocamento de fuso horário. Veja a descrição na linha anterior.
Tempo DATE_FORMAT = HH:mm:ss Não há nenhum valor de data, apenas de 00 a 23 horas, 00 a 59 minutos e 00 a 59 segundos.

Formatos de data e hora com suporte

O formato de arquivo externo pode descrever um grande número de formatos de data e hora:

data e hora smalldatetime 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 use 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 os valores de tempo, use o símbolo :.

  • As letras entre colchetes são opcionais.

  • As letras tt designam [AM|PM|am|pm]. AM é o padrão. Quando tt for especificado, o valor da hora (hh) deve estar no intervalo de 0 a 12.

  • As letras zzz designam o deslocamento de fuso horário para o fuso horário atual do sistema no formato {+|-}HH:ss].

USE_TYPE_DEFAULT = { TRUE | FALSE }

Especifica como tratar valores ausentes em arquivos de texto delimitados quando o PolyBase recuperar 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 da tabela externa. Por exemplo, substitua um valor ausente por:

    • 0 se a coluna for definida como numérica. Não há suporte a colunas decimais. Elas gerarão erros.

    • A cadeia de caracteres vazia "" se a coluna for uma coluna de cadeia de caracteres.

    • 1900-01-01 se a coluna for uma coluna de data.

    • No Azure Synapse Analytics, USE_TYPE_DEFAULT=true não tem suporte em FORMAT_TYPE = DELIMITEDTEXT, PARSER_VERSION = '2.0'.

  • FALSO

    Armazene todos os valores ausentes como NULL. Todos NULL os valores armazenados usando a palavra NULL no arquivo de texto delimitado são importados como a cadeia de caracteres NULL.

CODIFICAÇÃO = {'UTF8' | 'UTF16'}

No Azure Synapse Analytics e no PDW (Analytics Platform System) (APS CU 7.4), o PolyBase pode ler arquivos de texto delimitados codificados em UTF8 e UTF16-LE.

No SQL Server, o PolyBase não dá suporte à leitura de arquivos codificados em UTF16.

Permissões

Requer a permissão ALTER ANY EXTERNAL FILE FORMAT.

Comentários

O formato de arquivo externo está no escopo do banco de dados no SQL Server e Azure Synapse Analytics. Ele está no escopo do servidor no PDW (Analytics Platform System).

O formato Hadoop é suportado apenas no SQL Server 2016, 2017 e 2019.

As opções de formato são todas opcionais e só se aplicam a arquivos de texto delimitado.

Quando os dados são armazenados em um dos formatos compactados, o PolyBase primeiro descompacta os dados antes de retornar os registros de dados.

O banco de dados SQL no Microsoft Fabric suporta apenas formato CSV de texto delimitado e formatos de arquivo Parquet. O banco de dados SQL Fabric só suporta OneLake no Microsoft Fabric como fonte de dados.

Limitações

O delimitador de linha nos arquivos de texto delimitados precisa ser compatível com o LineRecordReader do Hadoop. Ou seja, ele deve ser \r, \n ou \r\n. Esses delimitadores não podem ser configurados pelo usuário.

As combinações de métodos SerDe compatíveis com RCFiles e os métodos de compactação de dados compatíveis estão listados anteriormente neste artigo. Nem todas as combinações são compatíveis.

O número máximo de consultas simultâneas do PolyBase é 32. Quando houver 32 consultas simultâneas em execução, cada consulta poderá ler no máximo 33.000 arquivos do local do arquivo externo. A pasta raiz e cada subpasta também são contadas como arquivos. Se o grau de simultaneidade for menor que 32, o local do arquivo externo poderá conter mais de 33.000 arquivos.

Devido à limitação no número de arquivos da tabela externa, é recomendável armazenar menos de 30.000 arquivos na pasta raiz e nas subpastas no local do arquivo externo. Além disso, é recomendável manter um número pequeno de subpastas no diretório raiz. Quando muitos arquivos são referenciados, pode ocorrer uma exceção de falta de memória da Máquina Virtual Java.

Ao exportar dados para o Hadoop ou para o Armazenamento de Blobs do Azure pelo PolyBase, somente os dados são exportados, não a coluna names(metadata), conforme a definição no comando CREATE EXTERNAL TABLE.

Bloqueio

Coloca um bloqueio compartilhado no objeto EXTERNAL FILE FORMAT.

Desempenho

O uso de arquivos compactados sempre traz a desvantagem de transferir menos dados entre a fonte de dados externa e o SQL Server e aumentar o uso da CPU para compactar e descompactar os dados.

Os arquivos de texto compactados com gzip não são divisíveis. Para melhorar o desempenho dos arquivos de texto compactados com Gzip, é recomendável gerar vários arquivos armazenados no mesmo diretório na fonte de dados externa. Essa estrutura de arquivo permite que o PolyBase leia e descompacte os dados com mais rapidez por meio de vários processos do leitor e de descompactação. O número ideal de arquivos compactados é o número máximo de processos do leitor de dados por nó de computação. No SQL Server

No PDW (Analytics Platform System), o número máximo de processos de leitor 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

a. Criar um formato de arquivo externo DELIMITEDTEXT

Este exemplo cria um formato de arquivo externo denominado textdelimited1 para um arquivo de texto delimitado. As opções listadas para FORMAT_OPTIONS especificam que os campos no arquivo devem ser separados usando um caractere de barra vertical |. 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 arquivo externo RCFile

Este exemplo cria um formato de arquivo externo para um RCFile que usa o método serialization/deserializationorg.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe. Ela também especifica o uso do Codec padrão para o método de compactação de dados. Se DATA_COMPRESSION não for especificado, o padrão não será 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 dados org.apache.io.compress.SnappyCodec. Se DATA_COMPRESSION não for especificado, o padrão não será 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 dados org.apache.io.compress.SnappyCodec. Se DATA_COMPRESSION não for especificado, o padrão não será 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, confira Virtualizar arquivo CSV com o 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 do JSON

Aplica-se ao: SQL do Azure no 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 dados org.apache.io.compress.SnappyCodec. Se DATA_COMPRESSION não for especificado, o padrão não será compactação. Este exemplo se aplica ao SQL do Azure no Edge e atualmente não é compatível com 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 de tipo de tabela Delta. Este exemplo aplica-se ao SQL Server 2022 (16.x). Para obter mais informações, consulte Virtualize a tabela delta com o PolyBase.

CREATE EXTERNAL FILE FORMAT DeltaFileFormat
WITH (
    FORMAT_TYPE = DELTA
);