0
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?

TeradataからSnowflakeへのデータマイグレーション - 2

Last updated at Posted at 2025-06-16

TeradataからSnowflakeにデータ移行の検証 - 続き

前回は、Teradataからのデータ抽出方法についてご紹介しました。
今回はその続編として、抽出したデータをSnowflakeにロードする方法について解説します。

1. SnowSQL - COPY INTO によるデータロード準備(接続情報の設定)

Snowflakeにデータをロードするには、対象となるアカウントやデータベースへの接続情報が必要です。これらは コマンドラインで直接入力するのではなく、外部ファイルとして設定しておくと管理しやすくなります。
ここではその例として、config.cnf というファイルとしています。

以下は、接続情報を定義した設定ファイルのサンプルです:

Connection.png

外部ファイルの構造について

1つの設定ファイル内に、複数の接続情報をセクションごとにまとめて記述することが可能です。
構成は、以下のように「セクション名」「キー名」「値」で成り立っています。

カテゴリ パラメータ 説明
セクション: connections.xxxx xxxx は任意の文字列 Snowflake接続情報を識別するセクション名
ここではその例として、xxxx はTESTとしています。
キー: アカウント名 accountname 接続先のSnowflakeアカウント名
キー: ユーザー名 username Snowflakeに接続するユーザー名
キー: パスワード password 上記ユーザーのパスワード
キー: データベース名 dbname データロード先のデータベース名
キー: スキーマ名 schemaname データロード先のスキーマ名
キー: ウェアハウス名 warehousename クエリ実行・ロード処理で使用するウェアハウス名

ファイル保存について

設定が完了したら、任意のファイル名で保存します。今回はこの設定ファイルを Config という名前で保存しました。
このように外部ファイルを用意することで、接続先の切り替えが容易になり、スクリプトの汎用性と保守性が向上します。

2. SnowSQL - COPY INTO によるデータロード:ロード用SQLファイルの作成

Snowflakeへデータをロードするには、COPY INTO コマンドを記述したSQLファイル(資材)を作成します。ここではその例として、Sample_table.sql というファイルとしています。

以下は実際のファイル内容のイメージです:

image.png

パラメータ 子パラメータ 説明
From ... - 外部ステージ名(TeradataのExportファイルが格納されたS3等)
FILE_FORMAT TYPE ファイル形式:CSV を指定
FILE_FORMAT FIELD_DELIMITER 区切り文字:パイプラインを指定
FILE_FORMAT DATE_FORMAT 日付形式:Teradata Export時のフォーマットに合わせて指定(例:YYYY-MM-DD)
FILE_FORMAT TIME_FORMAT 時間形式の指定(例:HH24:MI:SS)
FILE_FORMAT TIMESTAMP_FORMAT タイムスタンプ形式の指定(例:YYYY-MM-DD HH24:MI:SS)
FILE_FORMAT FIELD_OPTIONALLY_ENCLOSED_BY オプションの囲み文字:"(ダブルクォーテーション)
FILE_FORMAT COMPRESSION 圧縮形式:Teradata側で使用したものに合わせて指定(例:GZIP)
PATTERN - 対象ファイル名のパターン(例:'.*.gz')

📘 詳細な構文やパラメータ指定については、以下の公式ドキュメントを参照ください:
https://docs.snowflake.com/ja/sql-reference/sql/copy-into-table

3.SnowSQL - COPY INTO によるデータロード:実行手順

作成したSQL資材をもとに、SnowSQLからコマンドを実行してSnowflakeへのデータロードを行います。
SnowSQLがインストールされた環境から、以下のコマンドを実行します。

実行コマンド例:

snowsql -config "<接続情報設定ファイル名>" -c "<セクション名>" -f ""

パラメータ 説明
-config 接続情報を定義した設定ファイル名(フルパスでも可)
-c(セクション名) 設定ファイル内の該当セクション名(例:connections.test)
-f(SQLファイル) ロード対象のSQL資材ファイル名(例:Sample_table.sql)

まとめ

SnowSQLの COPY INTO を使うことで、Teradataから抽出・変換されたファイルを、構造・形式を保ったままSnowflakeに効率よくロードできます。
設定ファイル・ロード資材の構成を明確にすることで、環境の切り替えや複数テーブルへの展開にも柔軟に対応できます。

0
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
0
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?