次の方法で共有


CREATE EXTERNAL FILE FORMAT (Transact-SQL)

適用対象: SQL Server 2016 (13.x) 以降 Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Hadoop、Azure Blob Storage、Azure Data Lake Store に格納される外部データを定義する、または外部ストリームに関連付けられている入力および出力ストリーム用の外部ファイル形式オブジェクトを作成します。 外部ファイル形式の作成は、外部テーブルを作成するための前提条件です。 外部ファイル形式を作成することで、外部テーブルによって参照されるデータの実際のレイアウトを指定します。 外部テーブルの作成については、「CREATE EXTERNAL TABLE (Transact-SQL)」を参照してください。

次のファイル形式がサポートされています。

Transact-SQL 構文表記規則

構文

-- 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'}

}

引数

file_format_name

外部ファイル形式の名前を指定します。

フォーマット_タイプ

外部データの形式を指定します。

  • FORMAT_TYPE = PARQUET

    Parquet 形式を指定します。

  • FORMAT_TYPE = ORC

    最適化行多桁式 (ORC) 形式を指定します。 このオプションでは、外部の Hadoop クラスター上で 0.11 以降のバージョンの Hive が必要です。 Hadoop では、ORC ファイル形式の方が RCFILE ファイル形式よりも圧縮とパフォーマンスに優れています。

  • FORMAT_TYPE = RCFILE、SERDE_METHOD = SERDE_method

    レコード単票形式ファイル形式 (RcFile) を指定します。 このオプションでは、Hive のシリアライザーとデシリアライザー (SerDe) メソッドを指定する必要があります。 この要件は、Hadoop の Hive/HiveQL を使用して RC ファイルに対してクエリを実行する場合と同じです。 SerDe メソッドは大文字と小文字の区別があることに注意してください。

    PolyBase をサポートする 2 つの SerDe メソッドを使用して RCFile を指定する例です。

    • 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 = DELIMITEDTEXT

    フィールド ターミネータとも呼ばれる、列区切り記号付きのテキスト形式を指定します。

  • FORMAT_TYPE = JSON

    JSON 形式を指定します。 Azure SQL Edge にのみ適用されます。

  • FORMAT_TYPE = DELTA

    Delta Lake 形式を指定します。 Azure Synapse Analytics のサーバーレス SQL プールと SQL Server 2022 (16.x) に適用されます。

FORMAT_OPTIONS

省略可能。 区切りテキスト データ型の場合のみ。

Azure Synapse Analytics のサーバーレス SQL プールでのみ PARSER_VERSION がサポートされます。

サーバーレス SQL プールでは、 DATE_FORMAT オプションはサポートされていません。

DATA_COMPRESSION = data_compression_method

外部データのデータ圧縮方法を指定します。 DATA_COMPRESSIONが指定されていない場合、既定値は非圧縮データです。

Gzip圧縮ファイルを正常に動作させるには、ファイル拡張子 .gz が必要です。

DELIMITEDTEXT形式の種類では、次の圧縮方法がサポートされています。DATA_COMPRESSION = org.apache.hadoop.io.compress.GzipCodec

区切りテキスト形式のオプション

このセクションで説明する形式オプションは省略可能であり、区切りテキスト ファイルにのみ適用されます。

FIELD_TERMINATOR = field_terminator

区切りテキスト ファイルにのみ適用されます。 フィールド ターミネータは、テキスト区切りファイルでの各フィールド (列) の終了を示す 1 つ以上の文字を指定します。 既定値はパイプ文字 | です。 サポートが保証されるよう、1 つまたは複数の ASCII 文字を使うことをお勧めします。

例 :

  • FIELD_TERMINATOR = '|'
  • FIELD_TERMINATOR = ' '
  • FIELD_TERMINATOR = ꞌ\tꞌ
  • FIELD_TERMINATOR = '~|~'

STRING_DELIMITER

STRING_DELIMITER = *string_delimiter*

テキスト区切りファイル内のテキスト値を囲む文字を指定します。 既定値は空の文字列 "" です。 STRING_DELIMITERの値は、関数の OPENROWSET BULK オプションと機能的に同等です。

注意

Synapse 専用 SQL プールの Hadoop テーブルを使用すると、STRING_DELIMITERで 1 つ以上の文字を指定できます。 サーバーレス SQL プールでは、使用できる文字は 1 つだけです。

例 :

  • STRING_DELIMITER = '"'

  • STRING_DELIMITER = '0x22' (二重引用符 16 進数)

  • STRING_DELIMITER = '*'

  • STRING_DELIMITER = ꞌ,ꞌ

  • STRING_DELIMITER = '0x7E0x7E' (2 つのチルダ (例: ~~)- 専用 SQL プールでサポートされます。

FIRST_ROW = first_row_int

適用対象: Azure Synapse Analytics、SQL Server 2022 以降のバージョン

PolyBase の読み込みの間にすべてのファイルで最初に読み取る行番号を指定します。 このパラメーターでは、値 1 から 15 を受け取ることができます。 2 に設定すると、データが読み込まれるときに、すべてのファイルの最初の行 (ヘッダー行) がスキップされます。 行は、行ターミネータ (/r/n、/r、/n) の存在に基づいてスキップされます。 このオプションをエクスポートに使うと、行がデータに追加されて、データ損失なしにファイルを読み取ることができます。 2 より大きい値に設定する場合は、エクスポートされる最初の行は外部テーブルの列名です。

DATE_FORMAT = datetime_format

区切りテキスト ファイルに出現する可能性のあるすべての日付データと時刻データのカスタム形式を指定します。 ソース ファイルで既定の datetime 形式が使われている場合は、このオプションは必要ありません。 指定できるカスタム datetime 形式は、ファイルごとに 1 つだけです。 1 つのファイルに複数のカスタム datetime 形式を指定することはできません。 ただし、各形式が外部テーブル定義でそれぞれのデータ型の既定の形式になっている場合は、複数の datetime 形式を使うことができます。

重要

PolyBase では、カスタム日付形式はデータのインポートに対してのみ使われます。 外部ファイルへのデータの書き込みには、カスタム書式は使われません。

DATE_FORMAT が指定されていないか、空の文字列の場合、PolyBase は次の既定の形式を使います。

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

  • smalldatetime: 'yyyy-MM-dd HH:mm'

  • date: 'yyyy-MM-dd'

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

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

  • time: 'HH:mm:ss'

重要

カスタム DATE_FORMAT を指定すると、既定のすべての型形式がオーバーライドされます。 つまり、ファイル内のすべての日時、日付、時刻のセルで同じ日付形式を使用する必要があります。 オーバーライドされた DATE_FORMATでは、日付と時刻の値を異なる形式にすることはできません。

日付形式の例を次の表に示します。

テーブルに関する注意事項:

  • 年、月、日は、いくつかの形式と順序で指定できます。 表では、ymd 形式のみを示します。 月は、1 または 2 桁の数字、または 3 つの文字で指定できます。 日は、1 または 2 桁の数字で指定できます。 年は、2 または 4 桁の数字で指定できます。

  • ミリ秒 (fffffff) は必須ではありません。

  • ampm (tt) は必須ではありません。 既定では、 AMです。

日付型 説明
datetime DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fff 年、月、日に加えて、この日付形式には、00 ~ 24 時間、00 ~ 59 分、00 ~ 59 秒、ミリ秒の 3 桁が含まれます。
datetime DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffftt 年、月、日に加えて、この日付形式には、00 から 12 時間、00 ~ 59 分、00 ~ 59 秒、ミリ秒の 3 桁、 AMamPM、または pmが含まれます。
smalldatetime (スモールデイトタイム) DATE_FORMAT = yyyy-MM-dd HH:mm 年、月、日に加えて、この日付形式には、00-23 の時、00-59 の分が含まれます。
smalldatetime (スモールデイトタイム) DATE_FORMAT = yyyy-MM-dd hh:mmtt 年、月、日に加えて、この日付形式には、00 から 11 時間、00 ~ 59 分、秒なし、 AMamPM、または pmが含まれます。
日付 DATE_FORMAT = yyyy-MM-dd 年、月、日。 時刻要素は含まれていません。
日付 DATE_FORMAT = yyyy-MMM-dd 年、月、日。 月を MMM を使用して指定した場合、入力値は 1 つです。つまり、JanFebMarAprMayJunJul, AugSepOctNov、または Dec という文字列になります。
datetime2 DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff 年、月、日に加えて、この日付形式には、00 ~ 23 時間、00 ~ 59 分、00 ~ 59 秒、ミリ秒の 7 桁が含まれます。
datetime2 DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt 年、月、日に加えて、この日付形式には、00 から 11 時間、00 から 59 分、00 ~ 59 秒、ミリ秒の 7 桁、 AMamPM、または pmが含まれます。
datetimeoffset DATE_FORMAT = yyyy-MM-dd HH:mm:ss.fffffff zzz 年、月、日に加えて、この日付形式には、00-23 の時、00-59 の分、00-59 の秒、7 桁のミリ秒、および {+&#124;-}HH:ss として入力ファイルに格納するタイムゾーンのオフセットが含まれます。 たとえば、ロサンゼルス時間 (夏時間なし) は、UTC よりも 8 時間遅くなるので、入力ファイル内の値 -08:00 によってロサンゼルスのタイムゾーンが指定されます。
datetimeoffset DATE_FORMAT = yyyy-MM-dd hh:mm:ss.ffffffftt zzz 年、月、日に加えて、この日付形式には、00 から 11 時間、00 ~ 59 分、00 ~ 59 秒、ミリ秒の 7 桁の数字 (AMamPM、または pm)、タイムゾーン オフセットが含まれます。 前の行の説明を参照してください。
時間 DATE_FORMAT = HH:mm:ss 日付の値はありません。00 から 23 時、00 から 59 分、00 から 59 秒のみです。

サポートされていない日付と時刻の形式

外部ファイル形式では、多数の日付と時刻の形式を記述できます。

datetime smalldatetime (スモールデイトタイム) 日付 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

詳細:

  • 月、日、年の値を区切るには、-/. の区切り記号のいずれかを使用する必要があります。 わかりやすくするために、この表では、'-' の区切りのみを使用しています。

  • 月をテキストとして指定するには、3 つ以上の文字を使います。 1 つまたは 2 つの文字で表された月は、数値として解釈されます。

  • 時刻の値を区切るには、":" 記号を使います。

  • 角かっこで囲まれた文字はオプションです。

  • [ttAM|PM|am|] を指定pm文字。 AM はデフォルト値です。 ttを指定する場合、時間値 (hh) は 0 から 12 の範囲である必要があります。

  • zzz文字は、システムの現在のタイム ゾーンのタイム ゾーン オフセットを{+|-}HH:ss]形式で指定します。

USE_TYPE_DEFAULT = { TRUE |FALSE }

PolyBase によってテキスト ファイルからデータが取得されるときに、区切りテキスト ファイル内の不足値を処理する方法を指定します。 既定値は FALSE です。

  • 真実

    テキスト ファイルからデータを取得するときは、外部テーブルの定義内の対応する列のデータ型の既定値を使用して、各不足値を格納します。 たとえば、不足値を次の値に置き換えます。

    • 列が数値列として定義されている場合は 0。 decimal 型の列はサポートされておらず、エラーになります。

    • 列が string 型の列である場合は空の文字列 ""。

    • 1900-01-01 列が日付列の場合は 。

    • Azure Synapse Analytics では、USE_TYPE_DEFAULT=true に対する FORMAT_TYPE = DELIMITEDTEXT, PARSER_VERSION = '2.0' はサポートされていません。

  • すべての欠損値を NULLとして格納します。 区切りテキスト ファイル内の単語 NULL を使用して格納されるNULL値は、文字列NULLとしてインポートされます。

ENCODING = {'UTF8' |'UTF16'}

Azure Synapse Analytics と Analytics Platform System (PDW) (APS CU7.4) では、PolyBase は、UTF8 と UTF16 LE でエンコードされた区切りテキスト ファイルを読み取ることができます。

SQL Server の PolyBase では、UTF16 でエンコードされたファイルの読み取りはサポートされていません。

アクセス許可

ALTER ANY EXTERNAL FILE FORMAT アクセス許可が必須です。

注釈

外部ファイルの形式は、SQL Server と Azure Synapse Analytics ではデータベース スコープです。 Analytics Platform System (PDW) ではサーバー スコープです。

形式オプションはすべてオプションであり、区切りテキスト ファイルにのみ適用されます。

いずれかの圧縮形式でデータが格納されていると、PolyBase は最初にデータの圧縮を解除してから、データ レコードを返します。

制限事項

区切りテキスト ファイルの行区切り記号は、Hadoop の LineRecordReader でサポートされている必要があります。 つまり、\r\n、または \r\n のいずれかにする必要があります。 これらの区切り記号はユーザー構成可能ではありません。

サポートされる SerDe メソッドと RCFile の組み合わせ、およびサポートされるデータ圧縮方法は、この記事で前に示しました。 すべての組み合わせがサポートされているわけではありません。

PolyBase の同時実行クエリの最大数は、32 です。 32 の同時実行クエリを実行した場合、各クエリでは、外部ファイルの場所から最大で 33,000 個のファイルを読み取ることができます。 ルート フォルダーと各サブフォルダーもファイルとしてカウントされます。 同時実行クエリの数が 32 未満である場合、外部ファイルの場所には 33,000 個を超えるファイルを含めることができます。

外部テーブル内のファイル数には制限があるため、外部ファイルの場所のルートおよびサブフォルダーに格納するファイルの数は 30,000 個未満とすることをお勧めします。 また、ルート ディレクトリの下に保持するサブフォルダーの数は少なくすることをお勧めします。 参照されているファイルが多すぎる場合、Java 仮想マシンのメモリ不足例外が発生する可能性があります。

PolyBase で Hadoop または Azure Blob Storage にデータをエクスポートするときは、データだけがエクスポートされて、CREATE EXTERNAL TABLE コマンドで定義されている列名 (メタデータ) はエクスポートされません。

ロック

EXTERNAL FILE FORMAT オブジェクトに対して共有ロックを取得します。

パフォーマンス

常に圧縮したファイルを使用すると、外部データソースと SQL Server の間で転送するデータ量が少なくなると同時に、データの圧縮および圧縮解除のために CPU の使用率が高くなるというデメリットもあります。

Gzip で圧縮されたテキスト ファイルは分割可能ではありません。 Gzip で圧縮されたテキスト ファイルのパフォーマンスを向上させるには、複数のファイルを生成し、そのすべてを外部データ ソースの同じディレクトリに格納することをお勧めします。 このようなファイル構造にすると、PolyBase は、複数のリーダー プロセスと圧縮解除プロセスを使って、より速くデータを圧縮解除できます。 圧縮されたファイルの理想的な数は、計算ノードあたりのデータ リーダー プロセスの最大数です。 SQL Server で

Analytics Platform System (PDW) では、データ リーダー プロセスの最大数はノードあたり 8 です。 Azure Synapse Analytics では、データ リーダー プロセスの最大数はノードあたり 20 リーダーです。

A。 DELIMITEDTEXT 外部ファイル形式を作成する

この例では、テキスト区切りファイル用に textdelimited1 という名前の外部ファイル形式を作成します。 FORMAT_OPTIONS のオプション リストでは、ファイルのフィールドをパイプ文字 "|" を使って区切ることが指定されています。 テキスト ファイルはまた、Gzip コーデックを使用して圧縮されます。 DATA_COMPRESSIONが指定されていない場合、テキスト ファイルは圧縮されません。

区切りテキスト ファイルの場合、データ圧縮方法には、既定のコーデックである org.apache.hadoop.io.compress.DefaultCodec か、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. RCFile 外部ファイル形式を作成する

この例では、serialization/deserialization メソッドの org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe を使う RCFile の外部ファイル形式を作成します。 また、データ圧縮方法として既定のコーデックを使用するように指定しています。 DATA_COMPRESSIONが指定されていない場合、既定値は圧縮されません。

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. ORC 外部ファイル形式を作成する

この例では、org.apache.io.compress.SnappyCodec データ圧縮方法でデータを圧縮する ORC ファイルの外部ファイル形式を作成します。 DATA_COMPRESSIONが指定されていない場合、既定値は圧縮されません。

CREATE EXTERNAL FILE FORMAT orcfile1
WITH (
    FORMAT_TYPE = ORC,
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);

D. PARQUET 外部ファイル形式を作成する

この例では、org.apache.io.compress.SnappyCodec データ圧縮方法でデータを圧縮する Parquet ファイルの外部ファイル形式を作成します。 DATA_COMPRESSIONが指定されていない場合、既定値は圧縮されません。

CREATE EXTERNAL FILE FORMAT parquetfile1
WITH (
    FORMAT_TYPE = PARQUET,
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);

E. 区切りテキスト ファイルのスキップ ヘッダー行を作成する

適用対象: Azure Synapse Analytics、SQL Server 2022 (16.x) 以降。

この例では、ヘッダー行が 1 つの CSV ファイルの外部ファイル形式を作成します。 詳細については、「PolyBase を使って CSV ファイルを仮想化する」を参照してください。

CREATE EXTERNAL FILE FORMAT skipHeader_CSV
WITH (FORMAT_TYPE = DELIMITEDTEXT,
      FORMAT_OPTIONS(
          FIELD_TERMINATOR = ',',
          STRING_DELIMITER = '"',
          FIRST_ROW = 2,
          USE_TYPE_DEFAULT = True)
);

F. JSON 外部ファイル形式を作成する

適用対象: Azure SQL Edge。

この例では、org.apache.io.compress.SnappyCodec データ圧縮方法でデータを圧縮する JSON ファイルの外部ファイル形式を作成します。 DATA_COMPRESSIONが指定されていない場合、既定値は圧縮されません。 この例は Azure SQL Edge に適用されます。他の SQL 製品では現在サポートされていません。

CREATE EXTERNAL FILE FORMAT jsonFileFormat
WITH (
    FORMAT_TYPE = JSON,
    DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec'
);

G. Delta テーブルの外部ファイル形式を作成する

この例では、Delta テーブル型のファイル形式の外部ファイル形式を作成します。 この例は、SQL Server 2022 (16.x) に適用されます。 詳細については、「 PolyBase を使用したデルタ テーブルの仮想化」を参照してください。

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