メインコンテンツまでスキップ
に最終更新

MYSQL LOAD

説明​

MySQL クライアントを使用してローカルデータファイルを Doris にインポートします。MySQL Load は同期インポート方式で、実行後すぐにインポート結果を返します。LOAD DATA 文の戻り値から、インポートが成功したかどうかを判断できます。MySQL Load では、一連のインポートタスクの原子性が保証されます。つまり、すべてのインポートが成功するか、すべて失敗します。

構文​

LOAD DATA
[ LOCAL ]
INFILE "<file_name>"
INTO TABLE "<tbl_name>"
[ PARTITION (<partition_name> [, ... ]) ]
[ COLUMNS TERMINATED BY "<column_separator>" ]
[ LINES TERMINATED BY "<line_delimiter>" ]
[ IGNORE <number> {LINES | ROWS} ]
[ (<col_name_or_user_var> [, ... ] ) ]
[ SET (col_name={<expr> | DEFAULT} [, col_name={<expr> | DEFAULT}] ...) ]
[ PROPERTIES ("<key>" = "<value>" [ , ... ]) ]

必須パラメータ​

1. <file_name>

ローカルファイルのパスを指定します。相対パスと絶対パスのどちらも使用できます。現在は単一ファイルのみをサポートし、複数ファイルには対応していません。

2. <tbl_name>

例に示すように、テーブル名にはデータベース名を含めることができます。データベース名を省略すると、現在のユーザーのデータベースが使用されます。

オプションパラメータ​

1. LOCAL

LOCAL を指定すると、クライアントからファイルを読み取ります。省略すると、FE サーバーのローカルストレージからファイルを読み取ります。FE サーバーからのファイルインポート機能は、デフォルトで無効です。この機能を有効にするには、FE ノードで mysql_load_server_secure_path を設定し、安全なパスを指定する必要があります。

2. <partition_name>

インポート先として複数のパーティションを指定できます。パーティションはコンマで区切ります。

3. <column_separator>

カラムの区切り文字を指定します。

4. <line_delimiter>

行の区切り文字を指定します。

5. IGNORE <number> { LINES | ROWS }

CSV ファイルのヘッダーや任意の行数をスキップできます。この構文は IGNORE num ROWS に置き換えることもできます。

6. <col_name_or_user_var>

カラムマッピングの構文です。各パラメータについては、インポート時のデータ変換のカラムマッピングのセクションを参照してください。

7. properties ("<key>"="<value>",...)

パラメータパラメータの説明
max_filter_ratioフィルタリング可能なデータ(データの不整合などによる)の最大許容割合です。デフォルトでは許容割合はゼロです。
timeoutインポートのタイムアウトを秒単位で指定します。デフォルトは 600 秒、有効範囲は 1 秒から 259,200 秒です。
strict_modeこのインポートで厳格モードを有効にするかどうかを指定します。デフォルトでは無効です。
timezoneこのインポートのタイムゾーンを指定します。デフォルトは現在のクラスタのタイムゾーンです。このパラメータは、インポートに関わるすべてのタイムゾーン関連関数の結果に影響します。
exec_mem_limitインポート時のメモリ制限です。単位はバイトで、デフォルトは 2GB です。
trim_double_quotesデフォルト値が false のブール値です。true に設定すると、インポートファイルの各フィールドを囲む最も外側の二重引用符を取り除きます。
enclose囲み文字です。CSV データのフィールドに行区切り文字やカラム区切り文字が含まれる場合、意図しない分割を防ぐため、単一バイトの文字を囲み文字として指定できます。たとえば、カラム区切り文字が ","、囲み文字が "'"、データが "a,'b,c'" の場合、"b,c" は一つのフィールドとして解析されます。注意:enclose を "" に設定する場合は、trim_double_quotes を true に設定する必要があります。
escapeエスケープ文字です。CSV フィールド内に囲み文字と同じ文字が含まれる場合、その文字をエスケープするために使用します。たとえば、データが "a,'b,'c'"、囲み文字が "'" で、"b,'c" を一つのフィールドとして解析したい場合は、"" などの単一バイトのエスケープ文字を指定し、データを "a,'b,'c'" に変更する必要があります。

アクセス制御要件​

この SQL コマンドを実行するユーザーには、少なくとも次の権限が必要です。

権限オブジェクト説明
LOAD_PRIVテーブル指定したデータベースのテーブルに対するインポート権限。

使用上の注意​

  • MySQL Load 文は LOAD DATA で始まり、LABEL の指定は不要です。

例​

ローカルファイルのインポート、パーティションの選択、カラムマッピング、厳格モードなどを含む詳しい例については、データインポートガイドの MySQL Load を参照してください。