- Snowflakeへの接続
- Snowflakeへのデータのロード
- データのロードの概要
- データロード機能の概要
- データロードに関する考慮事項
- データロードの準備
- COPYを使用した一括ロード
- Snowpipeを使用した継続的なロード
- ウェブインターフェイスを使用したロード(制限付き)
- ステージングされたファイルのデータのクエリ
- ステージングされたファイルのメタデータのクエリ
- ロード中のデータの変換
- データロードのチュートリアル
- Snowflakeからのデータのアンロード
- Snowflakeを使用する
- Snowflakeでのデータの安全な共有
- ドキュメント »
- Snowflakeへのデータのロード »
- データロードのチュートリアル »
- チュートリアル: COPYを使用したAmazon S3からの一括ロード »
- ステップ4。データの問題に関連するデータロードエラーを解決する
ステップ4。データの問題に関連するデータロードエラーを解決する¶
.
ステップリスト
ステップ4。データの問題に関連するデータロードエラーを解決する
VALIDATE 関数を使用して、ロードしたデータファイルを検証し、ロード中に発生したすべてのエラーを返します。
エラーの検証¶
次のプロセスは、クエリ ID によってエラーを返し、結果を今後の参照用としてテーブルに保存します。
ウェブインターフェイスの History ページで COPY ジョブのクエリ ID を表示できます。
Snowflakeのウェブインターフェイスにログインします。
チュートリアル SQL ステートメントの実行に使用していたロールに変更します。
COPY INTO コマンドの Query ID 列リンクをクリックします。 Details パネルが開きます。
コマンドラインインターフェイス(例: SnowSQL)で、次のコマンドを実行します。
<クエリID>
を Query ID 値に置き換えます。CREATE OR REPLACE TABLE save_copy_errors AS SELECT * FROM TABLE(VALIDATE(mycsvtable, JOB_ID=>'<query_id>'));
結果テーブルをクエリします。
SELECT * FROM SAVE_COPY_ERRORS;
Snowflakeは次の結果を返します。
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+------+-----------+-------------+----------+--------+-----------+-------------------------------+------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+ | ERROR | FILE | LINE | CHARACTER | BYTE_OFFSET | CATEGORY | CODE | SQL_STATE | COLUMN_NAME | ROW_NUMBER | ROW_START_LINE | REJECTED_RECORD | |----------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+------+-----------+-------------+----------+--------+-----------+-------------------------------+------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------| | Number of columns in file (11) does not match that of the corresponding table (10), use file format option error_on_column_count_mismatch=false to ignore this error | tutorials/dataloading/contacts3.csv | 3 | 1 | 234 | parsing | 100080 | 22000 | "MYCSVTABLE"[11] | 1 | 2 | 11|Ishmael|Burnett|Dolor Elit Pellentesque Ltd|vitae.erat@necmollisvitae.ca|1-872|600-7301|1-513-592-6779|P.O. Box 975, 553 Odio, Road|Hulste|63345 | | Field delimiter '|' found while expecting record delimiter '\n' | tutorials/dataloading/contacts3.csv | 5 | 125 | 625 | parsing | 100016 | 22000 | "MYCSVTABLE"["POSTALCODE":10] | 4 | 5 | 14|Sophia|Christian|Turpis Ltd|lectus.pede@non.ca|1-962-503-3253|1-157-|850-3602|P.O. Box 824, 7971 Sagittis Rd.|Chattanooga|56188 | +----------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------------+------+-----------+-------------+----------+--------+-----------+-------------------------------+------------+----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+
Snowflakeは tutorials/dataloading/contacts3.csv
で2つのデータエラーを検出しました。
Number of columns in file (11) does not match that of the corresponding table (10)
行1で、ハイフンが誤ってパイプ(
|
)文字(データファイルの区切り文字)に置き換えられ、事実上レコードに追加の列が作成されました。Field delimiter '|' found while expecting record delimiter '\n'
行5で、ハイフンの後に追加のパイプ(
|
)文字が導入され、レコードが破壊されました。
エラーを修正して再度ロードする¶
通常の使用では、問題のあるレコードを手動で修正し、新しいデータファイルに書き込みます。または、ロードされなかったレコードのみを含むデータソースから新しいデータファイルを再生成できます。
次に、固定データファイルをS3バケットにステージングし、ファイルからデータを再ロードしようとします。