1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Snowflake S3データロード:④COPY INTOによるデータロード

Last updated at Posted at 2024-03-05

目次に戻る

■本記事の目的

Snowflakeのデータロードを理解する。
ユーザー管理のAmazonS3からSnowflakeにデータロードを行います。
S3バケットとフォルダおよび取込用のテストデータ(CSV形式)は、事前に作成済みとします。

■前回の記事

Snowflake S3データロード:③外部ステージ

■概要

前回までで、ロードするためのオブジェクト作成を完了したため、空テーブルを作成しデータをロードします。
COPY INTO テーブルによりロードを行います。

■テーブルを作成する。

データをロードするためには、テーブルオブジェクトが必要になります。
ファイルに合わせて、列を定義してください。

USE DATABASE <データベース>;
USE SCHEAMA <スキーマ>;
CREATE TABLE <テーブル>
(
<COLUMN_NAME_1> <DATA_TYPE>,
<COLUMN_NAME_2> <DATA_TYPE>,
・
・
・
<COLUMN_NAME_N> <DATA_TYPE>
)
/*他テーブルオプションなど*/
;

例)
USE DATABASE TEST_DB;
USE SCHEAMA TEST_SC;
CREATE TABLE TEST_TB
(
TARGET_YM VARCHAR(6),
ORG_CD VARCHAR(10),
ORG_NM VARCHAR(200),
AC_CD VARCHAR(10),
AC_NM VARCHAR(200),
BG_AM NUMBER(28,0),
RS_AM NUMBER(28,0),
RG_TS TIMESTAMP_NTZ
)
;

■データをロードする。

COPY INTO文でデータをロードします。
この処理には、ウェアハウスを指定してください。

USE ROLE <ロール名>;
USE WAREHOUSE <ウェアハウス名>;
USE DATABASE <データベース名>;
USE ROLE <スキーマ名>;

COPY INTO <テーブル名>
FROM @<外部ステージ名>
;

例)
USE ROLE SYSADMIN;
USE WAREHOUSE SYSADMIN\XS;
USE DATABASE TEST_DB;
USE ROLE TEST_SC;
COPY INTO TEST_TB
FROM @TEST_STAGE
;

■ロードの確認

正常にロードされると、ワークシートでは以下のように出力されます。
image.png
 
履歴を確認する場合、以下で確認可能です。

/*14日以内のCOPY INTOによるロードを確認する。*/
SELECT * FROM INFORMATION_SCHEMA.LOAD_HISTORY;

■あとがき

以上、全4回に渡って、S3からデータロードを行ってきました。
直近の案件で、Pythonから構造化データのExcelファイルを取り込む検証というのも行ったため、全2回でご紹介させていただければと思います。

■次の記事

Snowflake S3データロード:ストレージ統合設計
 
目次に戻る

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?