説明
OceanBaseデータベースの
LOAD DATAステートメントは、以下の入力ファイルをロードできます:サーバー側(OBServerノード)のファイル:ファイルはOceanBaseデータベースのOBServerノードに配置されています。
LOAD DATA INFILEステートメントまたはLOAD DATA FROM URLステートメントを使用して、サーバー側のファイルからデータをデータベーステーブルにロードできます。クライアント側(ローカル)のファイル:ファイルはクライアントのローカルファイルシステムに配置されています。
LOAD DATA LOCAL INFILEステートメントまたはLOAD DATA FROM URLステートメントを使用して、クライアント側のローカルファイルからデータをデータベーステーブルにロードできます。説明
OceanBaseデータベースで
LOAD DATA LOCAL INFILEコマンドを実行すると、システムが自動的にIGNOREオプションを追加します。OSSファイル:ファイルはOSSファイルシステムに配置されています。
LOAD DATA REMOTE_OSS INFILEステートメントを使用して、OSSファイルからデータをデータベーステーブルにロードできます。
LOAD DATAは現在、CSV形式のテキストファイルのインポートをサポートしており、インポートのプロセスは以下の手順に分けることができます:
ファイルの解析:OceanBaseデータベースは、ユーザーが指定したファイル名に基づいて、ファイル内のデータを読み取り、指定された並列度に基づいて入力ファイルのデータを並列または非並列で解析します。
データの分散:OceanBaseは分散データベースであるため、各パーティションのデータは異なるOBServerノードに分散している可能性があります。
LOAD DATAは解析されたデータを計算し、データをどのOBServerノードに送信するかを決定します。データの挿入:ターゲットのOBServerノードがデータを受信すると、ローカルで
INSERT操作を実行して、データを対応するパーティションに挿入します。
注意
トリガー (Trigger) を持つテーブルでは、
LOAD DATAステートメントを使用することはできません。外部ファイルからデータをインポートするには、
FILE権限と以下の設定が必要です:- サーバー側のファイルをロードするには、システム変数 secure_file_priv を事前に設定し、インポートまたはエクスポートファイルにアクセスできるパスを指定する必要があります。
- クライアント側のローカルファイルをロードするには、MySQL/OBClient クライアントを起動する際に
--local-infile[=1]オプションを追加して、ローカルファイルシステムからデータをロードする機能を有効にする必要があります。
指定されたパーティションをバイパスしてインポートする場合、ターゲットテーブルはレプリケーションテーブルであってはならず、オートインクリメント列、ID列、Global Indexを含んではなりません。
外部ファイルからデータをインポートするには、FILE 権限が必要です。GRANT FILE ON *.* TO $user_name; ステートメントを使用して権限を付与できます。ここで、$user_name は LOAD DATA コマンドを実行するユーザーです。
構文
-- 普通のファイルのインポート
LOAD DATA
[/*+ PARALLEL(N) [load_batch_size(M)] [APPEND | direct(bool, int, [load_mode])] | NO_DIRECT */]
[REMOTE_OSS | LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE table_name [PARTITION(PARTITION_OPTION)]
[COMPRESSION [=] {AUTO|NONE|GZIP|DEFLATE|ZSTD}]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number {LINES | ROWS}]
[(column_name_var
[, column_name_var] ...)]
load_mode:
'full'
| 'inc_replace'
PARTITION_OPTION:
partition_option_list
| subpartition_option_list
-- URL ファイルのインポート
LOAD DATA
[/*+ PARALLEL(N) [load_batch_size(M)] [APPEND | direct(bool, int, [load_mode])] | NO_DIRECT */]
[REPLACE | IGNORE]
FROM { url_table_function_expr |
( SELECT expression_list FROM url_table_function_expr ) }
INTO TABLE table_name
[PARTITION(PARTITION_OPTION)]
[(column_name_var [, column_name_var] ...)]
[LOG ERRORS [REJECT LIMIT {integer | UNLIMITED}]]
load_mode:
'full'
| 'inc_replace'
url_table_function_expr:
| FILES (
LOCATION = '<string>',
{
FORMAT = (
TYPE = 'CSV',
LINE_DELIMITER = '<string>' | <expr>,
FIELD_DELIMITER = '<string>' | <expr>,
PARSE_HEADER = { TRUE | FALSE },
ESCAPE = '<character>' | <expr>,
FIELD_OPTIONALLY_ENCLOSED_BY = '<character>' | <expr>,
ENCODING = 'charset',
NULL_IF = ('<string>' | <expr>, '<string>' | <expr> ...),
SKIP_HEADER = <int>,
SKIP_BLANK_LINES = { TRUE | FALSE },
TRIM_SPACE = { TRUE | FALSE },
EMPTY_FIELD_AS_NULL = { TRUE | FALSE }
)
| FORMAT = ( TYPE = 'PARQUET' | 'ORC' )
},
[PATTERN = '<regex_pattern>']
)
| SOURCE (
TYPE = 'ODPS',
ACCESSID = '<string>',
ACCESSKEY = '<string>',
ENDPOINT = '<string>',
TUNNEL_ENDPOINT = '<string>',
PROJECT_NAME = '<string>',
SCHEMA_NAME = '<string>',
TABLE_NAME = '<string>',
QUOTA_NAME = '<string>',
COMPRESSION_CODE = '<string>'
)
PARTITION_OPTION:
partition_option_list
| subpartition_option_list
パラメータの説明
| パラメータ | 説明 |
|---|---|
| parallel(N) | データを読み込む並列度を指定します。デフォルト値は4です。 |
| load_batch_size(M) | 1回の挿入で処理するデータのバッチサイズを指定します。M のデフォルト値は 100 です。推奨値の範囲は[100,1000]です。 |
| APPEND | direct() |NO_DIRECT | ヒントを使用して、バッチ読み込み機能を有効にします。
注意バッチ読み込みタスクを実行している間、OceanBaseデータベースのアップグレード操作を同時に実行することは推奨されません。これにより、バッチ読み込みタスクが失敗する可能性があります。
LOAD DATA によるバッチ読み込みの詳細な使用方法については、使用 LOAD DATA 語句でデータ/ファイルをバッチ読み込みを参照してください。 |
| REMOTE_OSS | LOCAL | オプションパラメータで、
|
| file_name | 指定入力ファイルのパスとファイル名。 file_name は以下の形式です:
説明OSS上のファイルをインポートする際には、以下の情報が確認されている必要があります:
|
| table_name | インポートデータのテーブル名。パーティションテーブルと非パーティションテーブルをサポートします。 |
| PARTITION_OPTION | パーティションダイレクトロード時のパーティション名を指定します:
説明パーティションの指定はダイレクトロードにのみ適用されます。通常の LOAD DATA には適用されません。つまり、ダイレクトロードのヒントを追加しない場合、またはダイレクトロードの構成パラメータを設定しない場合、LOAD DATA を実行してパーティションを指定しても効果がありません。 |
| COMPRESSION | 圧縮ファイル形式を指定します。
|
| FIELDS | COLUMNS | フィールドの形式を指定します。
|
| LINES STARTING BY | 行の開始文字を指定します。 |
| LINES TERMINATED BY | 行の終了文字を指定します。 |
| IGNORE number { LINES | ROWS } | 指定された行数を無視します。LINES はファイルの先頭の行数、ROWS はフィールド区切り文字で指定された先頭の行データを指します。デフォルトでは、入力ファイルのフィールドをテーブルの列と1対1で対応付けます。入力ファイルにすべての列が含まれていない場合、不足している列は以下のルールに従ってデフォルト値で埋められます:
説明複数ファイルのインポートの場合、単一ファイルのインポートと同様の動作になります。 |
| column_name_var | オプションです。インポートする列名を指定します。 |
| LOG ERRORS [REJECT LIMIT {integer | UNLIMITED}] | オプションです。URL 外部テーブルのインポートプロセスにおけるエラー診断を有効にします。詳細については、以下の log_errors を参照してください。
説明OceanBaseデータベースV4.3.5では、LOAD DATAステートメントによるURL外部テーブルへのインポート機能で、エラー診断の指定がV4.3.5 BP2からサポートされています。 |
FILES
FILESキーワードはLOCATION句、FORMAT句、およびPATTERN句で構成されます。
LOCATION句は、外部テーブルのファイルが保存されるパスを指定するために使用されます。通常、外部テーブルのデータファイルは単一のディレクトリに保存され、そのディレクトリにはサブディレクトリを含むことができます。テーブルを作成する際、外部テーブルはそのディレクトリ内のすべてのファイルを自動的に収集します。ローカル LOCATION の形式は
LOCATION = '[file://] local_file_path'です。ここで、local_file_pathは相対パスまたは絶対パスのいずれかを指定できます。相対パスを指定する場合は、現在のディレクトリがOceanBaseデータベースのインストールディレクトリである必要があります。secure_file_privは、OBServerノードがアクセスできるファイルパスを設定します。local_file_pathはsecure_file_privのパスのサブパスでなければなりません。リモートLocationの形式は以下のとおりです:
LOCATION = '{oss|S3}://$ACCESS_ID:$ACCESS_KEY@$HOST:s3_region/remote_file_path'。ここで、$ACCESS_ID、$ACCESS_KEY、および$HOSTはOSS、COS、およびS3へのアクセスに必要な設定情報であり、s3_regionはS3を使用する際の選択されたリージョン情報です。これらの敏感なアクセス情報は、データベースのシステムテーブルに暗号化して保存されます。LOCATION = 'hdfs://$ {hdfs_namenode_address}:${port}/PATH.localhost'。ここで、portはHDFSのポート番号を指し、PATHはHDFS内のディレクトリパスを指します。- Kerberos認証を使用する場合:
LOCATION = 'hdfs://localhost:port/user?principal=xxx&keytab=xxx&krb5conf=xxx&configs=xxx'。 ここで:principal:ログイン認証ユーザーを指します。keytab:ユーザー認証用のキーファイルパスを指定します。krb5conf:ユーザーがKerberos環境を使用するための設定ファイルパスを指定します。configs:追加のHDFS構成パラメータを指定します。デフォルトは空ですが、Kerberos環境の場合は通常この構成パラメータには値が設定されており、設定が必要です。例えば:dfs.data.transfer.protection=authentication,privacy。データ転送の保護レベルをauthenticationおよびprivacyに指定します。
- Kerberos認証を使用する場合:
注意
オブジェクトストレージパスを使用する場合、オブジェクトストレージパスの各パラメータは&記号で区切られます。入力したパラメータ値に英字の大文字・小文字、数字、\/-_$+=、およびワイルドカードのみを含めるようにしてください。上記以外の文字を入力した場合、設定が失敗する可能性があります。
FORMAT句は、ファイル形式に関連するプロパティを指定するために使用され、CSV、PARQUET、ORCの3種類のファイル形式をサポートしています。**TYPE = 'CSV'**の場合、以下のフィールドが含まれます:
LINE_DELIMITER:CSVファイルの行区切り文字を指定します。デフォルト値はLINE_DELIMITER='\n'です。FIELD_DELIMITER:オプションです。CSVファイルの列区切り文字を指定します。デフォルト値はFIELD_DELIMITER='\t'です。PARSE_HEADER:オプションです。CSVファイルの1行目を各列の列名として扱うかどうかを指定します。デフォルト値はFALSEであり、CSVファイルの1行目を各列の列名として扱わないことを意味します。ESCAPE:CSVファイルのエスケープ文字を指定します。1文字のみ指定できます。デフォルト値はESCAPE ='\'です。FIELD_OPTIONALLY_ENCLOSED_BY:オプションです。CSVファイルのフィールド値を囲む記号を指定します。デフォルト値は空です。このオプションを使用すると、CHAR、VARCHAR、TEXT、JSONなどの一部のデータ型のフィールドにのみ囲み文字が追加されます。ENCODING:ファイルの文字セットエンコーディング形式を指定します。このパラメータを指定しない場合、デフォルト値はUTF8MB4です。NULL_IF:NULLとして処理される文字列を指定します。デフォルト値は空です。SKIP_HEADER:ファイルヘッダーをスキップし、スキップする行数を指定します。SKIP_BLANK_LINES:空白行をスキップするかどうかを指定します。デフォルト値はFALSEであり、空白行をスキップしないことを意味します。TRIM_SPACE:ファイル内のフィールドの先頭と末尾のスペースを削除するかどうかを指定します。デフォルト値はFALSEであり、ファイル内のフィールドの先頭と末尾のスペースを削除しないことを意味します。EMPTY_FIELD_AS_NULL:空文字列をNULLとして処理するかどうかを指定します。デフォルト値はFALSEであり、空文字列をNULLとして処理しないことを意味します。
**TYPE = 'PARQUET/ORC'**の場合、他の追加フィールドはありません。
PATTERN句は、LOCATIONディレクトリ内のファイルをフィルタリングするための正規表現パターン文字列を指定します。各LOCATIONディレクトリ内のファイルパスについて、パターン文字列に一致する場合、外部テーブルはそのファイルにアクセスします。一致しない場合、外部テーブルはそのファイルをスキップします。このパラメータを指定しない場合、デフォルトではLOCATIONディレクトリ内のすべてのファイルにアクセスできます。
SOURCE
SOURCE キーワードは他の句を含みません。この場合、TYPE = 'ODPS' であり、以下のフィールドが存在します。
ACCESSID:ODPS ユーザーの ID を指定します。ACCESSKEY:ODPS ユーザーのパスワードを指定します。ENDPOINT:ODPS サービスの接続アドレスを指定します。TUNNEL_ENDPOINT:Tunnel データ転送サービスの接続アドレスを指定します。PROJECT_NAME:クエリ対象のテーブルが存在する Project を指定します。SCHEMA_NAME:オプションです。クエリ対象のテーブルの SCHEMA を指定します。TABLE_NAME:クエリ対象のテーブル名を指定します。QUOTA_NAME:オプションです。指定された Quota を使用するかどうかを選択します。COMPRESSION_CODE:オプションです。データソースの圧縮形式を指定します。サポートされている圧縮形式はZLIB、ZSTD、LZ4、ODPS_LZ4の4種類です。設定しない場合は、圧縮を有効にしません。
log_errors
LOG ERRORS:インポート時にエラー行をスキップすることを許可します。REJECT LIMIT: オプションです。許可される最大エラー行数を設定します。- デフォルト値は0です。これは、エラー行を許可しないことを意味し、最初のエラーが発生すると操作は失敗します。
integer:単一マシンで許可される最大エラー行数です。例えば、10 は1台のマシンでエラーが発生する最大行数が10行であることを意味します。UNLIMITED:無限のエラー行を許可します。
注意
LOG ERRORS句を指定しない場合、通常のインポート動作となります。つまり、最初のエラーが発生すると即座にエラーが報告されます。LOG ERRORS句を指定したが、REJECT LIMIT句を指定していない場合、LIMITを0に設定した場合と同じ動作になります。最初のエラーが発生すると操作は失敗しますが、最初のエラーが記録され、エラーコードも診断関連のエラー、「reject limit reached」となります。複数ファイルのダイレクトロード時のワイルドカード規則
複数ファイルのインポートを容易にするために、ファイルのワイルドカード機能が導入されました。この機能はサーバーサイドおよび OSS ファイルのインポートに適用されますが、クライアント側のファイルインポートには適用されません。
サーバーサイドでのワイルドカードの使用
マッチングルール:
ファイル名のマッチング:
load data /*+ parallel(20) direct(true, 0) */ infile '/xxx/test.*.csv' replace into table t1 fields terminated by '|';ディレクトリのマッチング:
load data /*+ parallel(20) direct(true, 0) */ infile '/aaa*bb/test.1.csv' replace into table t1 fields terminated by '|';ディレクトリとファイル名の同時マッチング:
load data /*+ parallel(20) direct(true, 0) */ infile '/aaa*bb/test.*.csv' replace into table t1 fields terminated by '|';
注意事項:
マッチするファイルが少なくとも1つ存在する必要があります。そうでない場合、エラーコード 4027 が返されます。
load data /*+ parallel(20) direct(true, 0) */ infile '/xxx/test.1*.csv,/xxx/test.6*.csv' replace into table t1 fields terminated by '|';の入力では、/xxx/test.1*.csv,/xxx/test.6*.csvが全体としてマッチすると見なされます。マッチしない場合はエラーコード 4027 が返されます。POSIX の GLOB 関数がサポートするワイルドカードのみサポートされます。例えば、
test.6*(6|0).csvおよびtest.6*({0.csv,6.csv}|.csv)はlsコマンドで検索できますが、GLOB 関数ではマッチせず、エラーコード 4027 が返されます。
オブジェクトストレージサービス(
OSS)でのワイルドカードの使用マッチングルール:
ファイル名のマッチング:
load data /*+ parallel(20) direct(true, 0) */ remote_oss infile 'oss://xxx/test.*.csv?host=xxx&access_id=xxx&access_key=xxx' replace into table t1 fields terminated by '|';注意事項:
ディレクトリのマッチングはサポートされません。例えば:
load data /*+ parallel(20) direct(true, 0) */ remote_oss infile 'oss://aa*bb/test.*.csv?host=xxx&access_id=xxx&access_key=xxx' replace into table t1 fields terminated by '|';はOB_NOT_SUPPORTEDを返します。ファイル名のワイルドカードは
*と?のみサポートされます。他のワイルドカードは入力は許可されていますが、マッチする結果は存在しません。
例
サーバーサイド(OBServerノード)のファイルからデータをインポートする
例1:サーバーサイドのファイルからデータをインポートします。
グローバルセキュリティパスを設定します。
注意
セキュリティ上の理由により、システム変数
secure_file_privを設定する際は、ローカルのUnix Socket経由でデータベースに接続し、このグローバル変数を変更するSQLステートメントを実行する必要があります。詳細については、secure_file_privを参照してください。obclient> SET GLOBAL secure_file_priv = "/";ログアウトします。
説明
secure_file_privはGLOBAL変数であるため、\qを実行してログアウトする必要があります。obclinet> \q実行結果は次のとおりです。
Bye再接続した後、
LOAD DATAステートメントを使用してデータをインポートします。標準的なインポート。
obclient> LOAD DATA INFILE '/home/admin/test.csv' INTO TABLE t1;APPENDヒントを使用して、ダイレクトロードを有効にします。LOAD DATA /*+ PARALLEL(4) APPEND */ INFILE '/home/admin/test.csv' INTO TABLE t1;
例2:
APPENDヒントを使用して、ダイレクトロード機能を有効にします。LOAD DATA /*+ PARALLEL(4) APPEND */ INFILE '/home/admin/a.csv' INTO TABLE t;例3:CSV形式のファイルをインポートします。
test1.csvファイルのすべての列をインポートします。load data /*+ direct(true,0) parallel(2)*/ from files( location = "data/csv", format = ( type = 'csv', field_delimiter = ',', parse_header = true, skip_blank_lines = true ), pattern = 'test1.csv') into table t1;data/csvディレクトリ内のtest1.csvファイルのc1、c2列を読み取り、それらをテーブルt1のcol1、col2列にインポートします。load data /*+ direct(true,0) parallel(2)*/ from ( select c1, c2 from files( location = 'data/csv' format = ( type = 'csv', field_delimiter = ',', parse_header = true, skip_blank_lines = true ), pattern = 'test1.csv')) into table t1 (col1, col2);
例4:PARQUET形式のファイルをインポートします。
load data /*+ direct(true,0) parallel(2)*/ from files( location = "data/parquet", format = ( type = 'PARQUET'), pattern = 'test1.parquet') into table t1;例5:ORC形式のファイルをインポートします。
load data /*+ direct(true,0) parallel(2)*/ from files( location = "data/orc", format = ( type = 'ORC'), pattern = 'test1.orc') into table t1;例5:ODPS形式のファイルをインポートします。
load data /*+ direct(true,0) parallel(2)*/ from source ( type = 'ODPS', accessid = '$ODPS_ACCESSID', accesskey = '******', endpoint= '$ODPS_ENDPOINT', project_name = 'example_project', schema_name = '', table_name = 'example_table', quota_name = '', compression_code = '') into table t1;クライアント(ローカル)ファイルからデータをインポートする
例1:ローカルファイルからOceanBaseデータベースのテーブルにデータをインポートします。
ターミナルまたはコマンドプロンプトウィンドウを開き、以下のコマンドを入力してクライアントを起動します。
obclient --local-infile -hxxx.xxx.xxx.xxx -P2881 -usys@oracle001 -p******実行結果は次のとおりです:
Welcome to the OceanBase. Commands end with ; or \g. Your OceanBase connection id is 3221548006 Server version: OceanBase 4.2.2.0 (r100000032024010510-75c47d4be18a399e13c5309de1a81da5caf4e7c0) (Built Jan 5 2024 10:17:55) Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. obclient [SYS]>注意
LOAD DATA LOCAL INFILE機能を使用するには、V2.2.4以降のバージョンのOBClientクライアントを使用してください。クライアントで、
LOAD DATA LOCAL INFILEステートメントを実行して、ローカルデータファイルをロードします。obclient [SYS]> LOAD DATA LOCAL INFILE '/home/admin/test_data/tbl1.csv' INTO TABLE tbl1 FIELDS TERMINATED BY ',';実行結果は次のとおりです:
Query OK, 3 rows affected Records: 3 Deleted: 0 Skipped: 0 Warnings: 0
例2:COMPRESSIONを設定して圧縮ファイルを直接インポートします。
LOAD DATA LOCAL INFILE '/your/file/lineitem.tbl.gz' INTO TABLE lineitem COMPRESSION GZIP FIELDS TERMINATED BY '|';例3:PARTITIONを使用してパーティションを指定して、ダイレクトロードを実行します。
- 1次パーティションを指定してダイレクトロードを実行する
load data /*+ direct(true,0) parallel(2) load_batch_size(100) */ infile "$FILE_PATH" into table t1 partition(p0, p1) fields terminated by '|' enclosed by '' lines starting by '' terminated by '\n';- 2次パーティションを指定してダイレクトロードを実行する
load data /*+ direct(true,0) parallel(2) load_batch_size(100) */ infile "$FILE_PATH" into table t1 partition(p0sp0, p1sp1) fields terminated by '|' enclosed by '' lines starting by '' terminated by '\n';OSSファイルからデータをインポートする
例1:
direct(bool, int)ヒントを使用して、ダイレクトロード機能を有効にします。ダイレクトロードファイルはOSS上にあります。LOAD DATA /*+ direct(true,1024) parallel(16) */ REMOTE_OSS INFILE 'oss://antsys-oceanbasebackup/backup_rd/xiaotao.ht/lineitem2.tbl?host=***.oss-cdn.***&access_id=***&access_key=***' INTO TABLE tbl1 FIELDS TERMINATED BY ',';サーバーサイドのファイルからURL形式の外部テーブルにデータをインポートする
注意
例に含まれるIPアドレスのコマンドは、セキュリティ上の理由により脱感覚処理されています。実際の環境で検証する際は、自分のマシンの実際のIPアドレスを入力する必要があります。
以下の手順では、外部ファイルがローカルにあり、OceanBaseデータベースのOracleモードに外部テーブルを作成する例を示します。
外部ファイルを準備します。
以下のコマンドを実行し、OBServerノードにログインするマシンの
/home/admin/test_csvディレクトリにcolumn_conv.csvというファイルを作成します。[admin@xxx /home/admin/external_csv]# vi column_conv.csvファイルの内容は以下のとおりです:
1,short,short 2,long_text,long_text 3,long_text,long_textインポートするファイルのパスを設定します。
注意
セキュリティ上の理由により、システム変数
secure_file_privを設定する際は、ローカルのUnix Socket経由でデータベースに接続し、このグローバル変数を変更するSQLステートメントを実行する必要があります。詳細については、secure_file_privを参照してください。以下のコマンドを実行して、OBServerノードにログインするマシンに接続します。
ssh admin@10.10.10.1以下のコマンドを実行して、ローカルのUnix Socket経由でテナント
oracle001に接続します。obclient -S /home/admin/oceanbase/run/sql.sock -usys@oracle001 -p******以下のSQLステートメントを実行して、インポートパスを
/home/admin/test_csvに設定します。SET GLOBAL secure_file_priv = "/home/admin/test_csv";
テナント
oracle001に再接続します。例:
obclient -h10.10.10.1 -P2881 -usys@oracle001 -p****** -Aテーブル
test_tbl1を作成します。CREATE TABLE test_tbl1(col1 VARCHAR2(5), col2 VARCHAR2(5), col3 VARCHAR2(5));LOAD DATAステートメントを使用して、URL形式の外部テーブルの構文に従ってテーブルtest_tbl1にデータをインポートし、エラーデバッグを指定します。LOAD DATA FROM FILES( LOCATION = '/home/admin/test_csv', FORMAT = ( TYPE = 'csv', FIELD_DELIMITER = ','), PATTERN = 'column_conv.csv') INTO TABLE test_tbl1 LOG ERRORS REJECT LIMIT UNLIMITED;実行結果は以下のとおりです:
Query OK, 1 row affected, 2 warnings Records: 1 Deleted: 0 Skipped: 0 Warnings: 2test_tbl1のデータを確認します。SELECT * FROM test_tbl1;実行結果は以下のとおりです:
+------+-------+-------+ | COL1 | COL2 | COL3 | +------+-------+-------+ | 1 | short | short | +------+-------+-------+ 1 row in set
参照ドキュメント
LOAD DATAステートメントを使用するためのサンプル情報については、使用 LOAD DATA 语句导入数据を参照してください。LOAD DATAステートメントを使用したダイレクトロードのサンプル情報については、使用 LOAD DATA 语句旁路导入数据を参照してください。