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) 応用編:データ連携 (Oracle からSynapseへの連携例)

Last updated at Posted at 2024-10-20

はじめに

データの移行や統合のニーズが高まる中、既存RDBからAzure Synapse Analyticsへのデータ連携は、多くの企業にとって課題となっています。本記事では、Simple Data Integratorを使用して、OracleデータベースからAzure Synapse Analyticsにデータを連携するための手順について説明します。

構成図

image.png

処理フロー

image.png

Source (Oracle)

スキーマ名:SDITEST
テーブル名:SAMPLETABLE1

テーブル構造
PK カラム名
key_icon.png ID NUMBER
NAME NVARCHAR2(100)
BIRTHDATE DATE
SALARY NUMBER(18,2)
ISACTIVE NUMBER(1,0)
CREATEDAT TIMESTAMP (6)
EMAIL VARCHAR2(255 BYTE)
LASTMODIFIEDTIME TIMESTAMP (7)
USERGUID RAW(16)
WEIGHT FLOAT(126)
RATING BINARY_FLOAT
JSONDATA NVARCHAR2(4000)
DDL
  CREATE TABLE "SDITEST"."SAMPLETABLE1" 
   (	
    "ID" NUMBER(10,0) NOT NULL ENABLE, 
	"NAME" NVARCHAR2(100) COLLATE "USING_NLS_COMP", 
	"BIRTHDATE" DATE, 
	"SALARY" NUMBER(18,2), 
	"ISACTIVE" NUMBER(1,0), 
	"CREATEDAT" TIMESTAMP (6), 
	"EMAIL" VARCHAR2(255 BYTE) COLLATE "USING_NLS_COMP", 
	"LASTMODIFIEDTIME" TIMESTAMP (7), 
	"USERGUID" RAW(16), 
	"WEIGHT" FLOAT(126), 
	"RATING" BINARY_FLOAT, 
	"JSONDATA" NVARCHAR2(4000) COLLATE "USING_NLS_COMP", 
	 CONSTRAINT "SAMPLETABLE1_PK" PRIMARY KEY ("ID")
  )

Target (Synapse)

スキーマ名:dbo
テーブル名:SampleTable1

テーブル構造
PK カラム名
key_icon.png Id int
Name nvarchar(100)
BirthDate date
Salary decimal(18,2)
IsActive bit
CreatedAt datetime
Email varchar(255)
LastModifiedTime datetime2(7)
Weight float
Rating real
JSONData nvarchar(4000)
DDL

CREATE TABLE [dbo].[SampleTable1]
( 
	[Id] [int]  NOT NULL,
	[Name] [nvarchar](100)  NULL,
	[BirthDate] [date]  NULL,
	[Salary] [decimal](18,2)  NULL,
	[IsActive] [bit]  NULL,
	[CreatedAt] [datetime]  NULL,
	[Email] [varchar](255)  NULL,
	[LastModifiedTime] [datetime2](7)  NULL,
	[Weight] [float]  NULL,
	[Rating] [real]  NULL,
	[JSONData] [nvarchar](4000)  NULL
)
WITH
(
	DISTRIBUTION = HASH ( [Id] ),
	CLUSTERED COLUMNSTORE INDEX
)
GO

ALTER TABLE [dbo].[SampleTable1] ADD CONSTRAINT PK_SampleTable1 PRIMARY KEY NONCLUSTERED (Id) NOT ENFORCED
GO
 

設定

コネクション設定

Source DB、Target DB への接続を設定。
設定方法は下記の記事を参照:
https://qiita.com/RiCCT/items/787a41bb54277a3b26c2

ソースコネクション名 ターゲットコネクション名
ORACLE-SDITEST
image.png
Synapse SDITEST ※1
image.png

※1 Synapse へのコネクションを設定する際、データタイプは「SqlServer」を選択してください。
公式資料:
https://ja.sdi.ricct.com/userguide/connectionsqlserver/

マッピング設定

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

image.png

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

image.png

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

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

image.png

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

4 . テスト実行

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

お勧め

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

image.png

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

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?