このプロジェクトは、Snowflakeデータベースと連携するJavaプログラム群です。各Javaファイルは独立した処理を担当し、ETL・データ変換・ビュー管理・バッチ処理などを実現します。
- 概要: Snowflakeのスキーマ・テーブル・Dynamic Table(
DT_RECENT_PURCHASES)を初期化・自動作成します。 - 機能:
- 指定したデータベース・スキーマの作成(存在しない場合)
- 必要なテーブル(
CUSTOMER_JP,PRODUCT_MASTER,JOB_LOG)の作成 - Dynamic Table(
DT_RECENT_PURCHASES)の自動作成
- 実行方法:
scripts/init_snowflake_schema.shを実行します。
- 概要:
TEST_TABLEの作成、データ挿入、およびCSVファイル(../src/csv/data.csv)からのデータ追加を行います。 - 機能:
TEST_TABLEが存在しない場合は作成します。../src/csv/data.csvに含まれるデータをテーブルに挿入します。- テーブルの内容を表示します。
- 実行方法:
scripts/run_agent.shを実行します。
- 概要: CSVファイル(Shift_JIS→UTF-8)の文字コードを変換し、変換後のCSVデータをSnowflakeの
CUSTOMER_JPテーブルにJDBC経由でINSERTします。 - 機能:
- 指定されたCSVファイルの文字コードをShift_JISからUTF-8に変換します。
- 変換されたデータを
CUSTOMER_JPテーブルに挿入します。
- 実行方法:
scripts/run_encoding_converter.shを実行します。
- 概要:
CUSTOMER_JPテーブルへテストデータ(101件)を追加し、ストアドプロシージャSP_PURGE_IF_OVERLOADを実行し、ジョブログへの記録、Dynamic TableDT_RECENT_PURCHASESの内容・更新履歴の表示、および終了コードでJP1連携対応を行います。 - 機能:
CUSTOMER_JPテーブルに101件のテストデータを挿入します。- ストアドプロシージャ
SP_PURGE_IF_OVERLOADを実行します。 - 実行結果をジョブログ(
JOB_LOGテーブル)に記録します。 - Dynamic Table
DT_RECENT_PURCHASESの内容と更新履歴を表示します。 - ストアドプロシージャの結果に応じてJP1連携用の終了コードを出力します(削除実行:0、案件未達:1、エラー:2)。
- 実行方法:
scripts/run_batch_test.shを実行します。
- 概要: 顧客・商品データの各種ビュー(集計・整形・JOIN・多言語変換など)を作成し、作成したビューの内容をカラム名付きで表示します。
- 機能:
- 商品マスタテーブル(
PRODUCT_MASTER)を作成・データ挿入します。 - 顧客データを整形するビュー(
VW_CUSTOMER_FORMATTED)を作成します。 - 商品別の購入件数を集計するビュー(
VW_PRODUCT_STATS)を作成します。 - 東京都在住の顧客のみを抽出するビュー(
VW_CUSTOMER_TOKYO)を作成します。 - 顧客と商品マスタを結合したビュー(
VW_CUSTOMER_WITH_PRODUCT)を作成します。 - 商品名を英語に変換する多言語対応ビュー(
VW_CUSTOMER_LANG)を作成します。 - 作成したビューの内容をカラム名付きで表示します。
- 商品マスタテーブル(
- 実行方法:
scripts/run_view_manager.shを実行します。
- 概要: CSVファイル(
src/csv/data.csv)からデータを読み込み、SnowflakeのTEST_TABLEにPreparedStatementで挿入します。 - 実行方法:
scripts/run_bulk_loader.shを実行します。
- 概要: MySQLの
CUSTOMER_MYSQLテーブルからデータを取得し、SnowflakeのCUSTOMER_JPテーブルへバルクロードします。 - 実行方法:
scripts/run_bulk_mysql_loader.shを実行します。 - 必要な環境変数例(
scripts/env.sh):export MYSQL_URL="jdbc:mysql://localhost:3306/mydb?serverTimezone=Asia/Tokyo" export MYSQL_USER="root" export MYSQL_PASSWORD="root"
src/csv/data.csv: TEST_TABLE用のサンプルデータsrc/csv/customer_sjis.csv: Shift_JISエンコーディングのサンプルsrc/csv/customer_utf8.csv: UTF-8変換後のサンプル
InitSnowflakeSchema.javaでDT_RECENT_PURCHASESを自動作成
snowflake_full_project_example.md に記載の「Snowflakeフル機能活用データ統合&分析基盤」プロジェクトは、
現状「データ連携・ETL(CSV/MySQL→Snowflake)」まで実装・検証済みです。
以降の機能(DDL自動化、セキュリティ、API連携など)は今後の拡張予定です。