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 を参照してください。