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?

Simple Data Integrator (SDI) 応用編:データ連携 (MySQLからBigQueryへの連携例)

Last updated at Posted at 2024-10-23

Simple Data Integrator (SDI) バージョン2.0.2024.5から、ODBC経由でBigQueryへのデータ同期パフォーマンスが改善されました。以前のバージョンをご利用の方には、バージョンアップをおすすめします。

はじめに

Simple Data Integratorを使用して、MySQLデータベースからBigQueryへデータを連携する設定手順をご紹介します。
このツールを使えば、異なるデータベース間でのデータ移行が簡単に行え、BigQueryでのデータ分析や管理がスムーズになります。
ここでは、MySQLとBigQueryを例にしていますが、対応しているデータベースであれば、ソースやターゲットを任意のDBに設定した場合でも、設定手順はほぼ同様です。

事前準備

設定を開始する前に、以下の準備が整っていることを確認してください:

  1. MySQLデータベース:ソースデータはMySQLデータベースに格納されており、アクセスできること。
  2. BigQueryプロジェクト:Google CloudのプロジェクトでBigQueryが有効になっている必要があります。
  3. ODBCドライバー: BigQueryへの接続に使用するODBCドライバーがインストールされていること。
  4. Simple Data Integrator: Simple Data Integratorがインストールされていること。

構成図

image.png

※一般的なカラムタイプを使用したBigQueryテーブルを作成し、動作確認を行います。

Source (MySQL)

スキーマ名:sditest
テーブル名:sample_table_b

テーブル構造
PK カラム名
key_icon.png id BIGINT
string_column VARCHAR(255)
int64_column BIGINT
float64_column DOUBLE
bool_column BOOLEAN
bytes_column BLOB
date_column DATE
datetime_column DATETIME
time_column TIME
timestamp_column TIMESTAMP
DDL

CREATE TABLE sample_table_b (
  id BIGINT NOT NULL AUTO_INCREMENT,
  string_column VARCHAR(255),
  int64_column BIGINT,
  float64_column DOUBLE,
  bool_column BOOLEAN,
  bytes_column BLOB,
  date_column DATE,
  datetime_column DATETIME,
  time_column TIME,
  timestamp_column TIMESTAMP,
  PRIMARY KEY (id)
);


Test Data
INSERT INTO sample_table_b (
  string_column, int64_column, float64_column, bool_column, bytes_column, date_column, datetime_column, time_column, timestamp_column
) 
VALUES
(
  'First String', 123456789, 12345.6789, TRUE, X'48656C6C6F', '2024-01-01', '2024-01-01 12:34:56', '12:34:56', '2024-01-01 12:34:56'
),
(
  'Second String', 987654321, 98765.4321, FALSE, X'776F726C64', '2024-12-31', '2024-12-31 23:59:59', '23:59:59', '2024-12-31 23:59:59'
);

Target (BigQuery)

スキーマ名:TEST2
テーブル名:sample_table

テーブル構造
PK カラム名
key_icon.png id INT64
string_column STRING
int64_column INT64
float64_column FLOAT64
bool_column BOOL
bytes_column BYTES
date_column DATE
datetime_column DATETIME
time_column TIME
timestamp_column TIMESTAMP
DDL
CREATE OR REPLACE TABLE TEST2.sample_table (
  id INT64 NOT NULL,
  string_column STRING,
  int64_column INT64,
  float64_column FLOAT64,
  bool_column BOOL,
  bytes_column BYTES,
  date_column DATE,
  datetime_column DATETIME,
  time_column TIME,
  timestamp_column TIMESTAMP
);

ALTER TABLE TEST2.sample_table ADD PRIMARY KEY(id) NOT ENFORCED;

処理フロー

image.png

設定

1.BigQueryへのODBC設定

公式資料を参照して設定してください。
下記の1、2の設定をデフォルトではなく、説明通りに修正してください。
image.png
Advanced Options:
image.png

No 項目 説明
1 Encrypt Sensitive Data For All Users」 と指定します。
2 Advanced Options設定:Enable Session チェックを入れる

Data Source名:BigQueryTest
参考資料:
https://qiita.com/spssfun2017/items/8dab283d6aa5731e6082

2.コネクション設定

Source DB、Target DB への接続を設定。

ソースコネクション名 ターゲットコネクション名
MySql
image.png
BigQuery-Test
image.png
公式資料:
https://ja.sdi.ricct.com/userguide/connectionmysql/
データタイプは「ODBC」を選択し、DSN名にはODBC設定時のData Source名を入力してください。
User Id , Password 空白にします。
「Transaction Supported」のチェックを外してください。
公式資料:
https://ja.sdi.ricct.com/userguide/connectionodbc/

設定方法は下記の記事を参照:
https://qiita.com/RiCCT/items/787a41bb54277a3b26c2

3. マッピング設定

3.1 .「新規マッピング」ボタンをクリックしてマッピング設定画面を開きます。

image.png

3.2 . ソースコネクション、テーブル、ターゲットコネクション、テーブルを選択

image.png

No 項目 説明
1 マッピング名 マッピング名を入力、任意の名前設定できます。システムは名前の重複チェックしていないですが、管理上、ユニークの名前の設定をお勧めします。
2 ソースコネクション MySqlを選択
3 ソーステーブル sditest.sample_table_bを選択
4 コネクションコネクション BigQuery-Testを選択
5 コネクションテーブル TEST2.sample_table
6 カラム一覧取得 カラム一覧取得ボタンをクリックしてテーブル定義明細取得

3.3 . カラムのマッピングルールを設定

image.png

No 項目 説明
7 ソースカラム ターゲットカラムに対して、ソースデータの対応するカラムを選択します。同じカラムが存在する場合はデフォルトで自動マッピングされます。今回はデフォルト設定のままにします。
ソースカラム名とターゲットカラム名が異なる場合は、対応するソースカラムを選択してください。
8 マッピング対象 データ連携を行うかどうかを選択します。今回は全カラムのデータを連携します。
9 更新方式 Mergeを選択。
更新方式についての詳細説明は下記の資料を参照:
https://ja.sdi.ricct.com/userguide/mappingtarget/

3.4 . テスト実行

マッピング実行 ボタンをクリックして、動作確認します。

image.png

No 項目 説明
10 ステータス 実行成功の場合、マッピングを保存して、設定完了。
エラーが発生した場合、詳細画面でエラー内容を確認した上対応します。
11 詳細アイコン 詳細アイコンをクリックしてLOGの詳細参照できます。

お勧め
マッピング実行前に、ソースとターゲットのテータ参照ボタンをクリックして、データを確認した上実行します。マッピング成功の場合、もう一度ターゲットのデータを確認して、結果は期待通りかどうかを判断します。

マッピング実行前:
image.png

マッピング実行後:
image.png

データが同期されていることを確認できました。

3.5 . 保存

保存 ボタンをクリックして、マッピング設定を保存します。

定期的にデータ連携したい場合、スケジューラーを作成してマッピングを登録します。
スケジューラー設定につきまして、下記のページを参照してください。
https://ja.sdi.ricct.com/userguide/schedule/

以上です。

Simple Data Integrator (SDI) 実践入門

参考資料

SDI日本語公式サイト
SDI English Official Website
SDIマップイング設定

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?