ビッグデータ・クラウドプロジェクトでは、オンプレミス内やオンプレミスとクラウド間(AWS, SoftLayer, Microsoft Azureなど)でのデータ連携が必須となります。本セッションでは、データ連携に関するキーテクノロジー=データレプリケーションテクノロジーについて解説するとともにオンプレミス-クラウド間でのデータ連携をAttunity Replicateを使用して、ライブデモでご紹介させていただきます
12. Copyright @2015 Insight Technology, Inc. All Right Reserved
1.スタンバイ方式
(Physical Replication)
データベース単位でのデータ連携(データブロック反映)
2.レプリケーション方式
(Logical Replication)
スキーマ/テーブル単位でのデータ連携(SQL反映)
Oracle DataGuard
Dbvisit Standby
01. Description of the contents
RDB データ連携方式
Oracle GoldenGate
Attunity Replicate
13. Copyright @2015 Insight Technology, Inc. All Right Reserved
データベースデータ連携(データ同期)~1
Source DB Target DB
EMP
DEPT
SALGRADE
EMP
DEPT
SALGRADE
初期同期
(COPY)
14. Copyright @2015 Insight Technology, Inc. All Right Reserved
Source DB Target DB
Change
Data
Capture
トランザクションログ
EMP
DEPT
SALGRADE
EMP
DEPT
SALGRADE
Change
Data
Apply
データベースデータ連携(データ同期)~2
INSERT
UPDATE
DELETE
15. Copyright @2015 Insight Technology, Inc. All Right Reserved
1.スタンバイ方式
(Physical Replication)
データベース単位でのデータ連携(データブロック反映)
2.レプリケーション方式
(Logical Replication)
スキーマ/テーブル単位でのデータ連携(SQL反映)
Oracle DataGuard
Dbvisit Standby
01. Description of the contents
データ連携方式
Oracle GoldenGate
Attunity Replicate
17. Copyright @2015 Insight Technology, Inc. All Right Reserved
Source DB Target DB
Change
Data
Capture
トランザクションログ
EMP
DEPT
SALGRADE
EMP
DEPT
SALGRADE
データベースデータ連携(Logical Replication)
Change
Data
Apply
INSERT
UPDATE
DELETE
INSERT
UPDATE
DELETE
SQL
18. Copyright @2015 Insight Technology, Inc. All Right Reserved
REDOログファイル分析のためのLogMinerを使用して情報を取得
V$LOGMNR_CONTENTS(Oracleマニュアルから一部抜粋)
Oracleの場合:トランザクションログファイル
列 データ型 説明
SCN NUMBER データベースに変更が加えられた時点のシステム変更番号(SCN)
START_SCN NUMBER この変更を含むトランザクションが開始されたときのシステム変更番号(SCN)。
COMMITTED_DATA_ONLYオプションがDBMS_LOGMNR.START_LOGMNR()の
起動時に選択された場合のみ有効、それ以外の場合はNULL。この列は、トランザ
クションの開始を含まない時間/SCN範囲に問合せが実行されると、NULLになるこ
ともある。
COMMIT_SCN NUMBER トランザクションのコミット時のシステム変更番号(SCN)。
COMMITTED_DATA_ONLYオプションがDBMS_LOGMNR.START_LOGMNR()の
起動時に選択された場合のみ有効。
TIMESTAMP DATE データベースに変更が加えられた時点のタイムスタンプ
START_TIMESTAMP DATE この変更を含むトランザクションが開始されたときのタイムスタンプ。
COMMITTED_DATA_ONLYオプションがDBMS_LOGMNR.START_LOGMNR()の
起動時に選択された場合のみ有効、それ以外の場合はNULL。この列は、トランザ
クションの開始を含まない時間/SCN範囲に問合せが実行されると、NULLになるこ
ともある。
COMMIT_TIMESTAMP DATE トランザクションのコミット時のタイムスタンプ。COMMITTED_DATA_ONLYオ
プションがDBMS_LOGMNR.START_LOGMNR()の起動時に選択された場合のみ有
効。
USERNAME VARCHAR2(30) トランザクションを実行したユーザーの名前
OS_USERNAME VARCHAR2(4000) オペレーティング・システムのユーザー名
SQL_REDO VARCHAR2(4000) 再構成されたSQL文で、変更を実行した元のSQL文と同じ。
SQL_UNDO VARCHAR2(4000) 再構成されたSQL文で、変更を実行した元の文の結果を取り消すために使用できる。
19. Copyright @2015 Insight Technology, Inc. All Right Reserved
プライマリーキーの条件を付加して生成
ロジカルレプリケーション:SQL Apply
再構築されたSQL文を別のデータベースに適用するアプリケーションでは、
行を一意に識別する列(主キーなど)で更新文(更新レコード)を識別する
必要がある。
Oracleの場合、ROWID はデータベースごとに異なり、他のデータベースでは意味を持たないため
V$LOGMNR_CONTENTSによって返される再構築されたSQL に示されるROWID では識別できない
ソースデータベース ターゲットデータベース
PK PK
20. Copyright @2015 Insight Technology, Inc. All Right Reserved
Database ログモードの変更 Command
サプリメンタルロギングを有効化
■データベースレベルの最小サプリメンタルロギングの有効化
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
■テーブル毎のサプリメンタルロギングの有効化
◇プライマリキー有り
ALTER TABLE DEPT ADD SUPPLEMENTAL LOG DATA(PRIMARY KEY)
COLUMNS;
◇プライマリキー無し
ALTER TABLE SALGRADE ADD SUPPLEMENTAL LOG DATA(ALL)
COLUMNS;
PKなしテーブルに対して、
チェンジデータキャプチャを構成
■データベースレベルのCDC有効化
EXEC sys.sp_cdc_enable_db
■テーブル毎のCDC有効化(プライマリキー無しの場合)
EXEC sys.sp_cdc_enable_table
@source_schema = N’[SCHEMAname]’,
@source_name = N’[TABLEname]’,
@role_name = NULL
データ複製に関する追加情報をログに
記録することを有効化
■テーブル毎の変更データキャプチャの有効化
ALTER TABLE < name> DATA CAPTURE CHANGES
トランザクションログにプライマリキーを付加
21. Copyright @2015 Insight Technology, Inc. All Right Reserved
実行SQL V$LOGMNR_CONTENTS / SQL_REDO
DELETE FROM EMP
WHERE EMPNO=7844;
delete from "SCOTT"."EMP"
where "EMPNO" = '7844' and "ENAME" = 'TURNER' and “JOB” = ‘SALESMAN’
and "MGR" = '7698' and "HIREDATE" = TO_DATE('81-09-08', 'RR-MM-DD')
and "SAL" = '1500' and "COMM" = '0' and "DEPTNO" = '30'
and ROWID = 'AAAD8yAAEAAA+k8AAN';
ROLLBACK;
insert into
"SCOTT"."EMP"("EMPNO","ENAME","JOB","MGR","HIREDATE","SAL","COMM","DEPTNO")
values ('7844','TURNER','SALESMAN','7698',TO_DATE('81-09-08', 'RR-MM-
DD'),'1500','0','30');
UPDATE EMP
SET SAL=SAL*1.1
WHERE EMPNO=7844;
update "SCOTT"."EMP"
set "SAL" = '1650'
where "EMPNO" = '7844' and "SAL" = '1500'
and ROWID = 'AAAD7cAAEAAAACUAAb';
DELETE FROM SALGRADE
WHERE GRADE=5;
delete from "SCOTT"."SALGRADE"
where "GRADE" = '5' and "LOSAL" = '3001' and "HISAL" = '9999'
and ROWID = 'AAAD7dAAEAAAADMAAI';
ROLLBACK;
insert into "SCOTT"."SALGRADE"("GRADE","LOSAL","HISAL")
values ('5','3001','9999');
UPDATE SALGRADE
SET HISAL=20000
WHERE GRADE=5;
update "SCOTT"."SALGRADE" set "HISAL" = '20000'
where "GRADE" = '5' and "LOSAL"= '3001' and "HISAL" = '9999'
and ROWID = 'AAAD7dAAEAAAADMAAI';
ログマイナーの内容(サプリメンタルロギングの有効化後)
プライマリーキーまたは、全カラムの条件が付加されて生成
22. Copyright @2015 Insight Technology, Inc. All Right Reserved
ログマイナーの内容(サプリメンタルロギングの有効化後)
プライマリーキーまたは、全カラムの条件が付加されて生成
実行SQL V$LOGMNR_CONTENTS / SQL_REDO
DELTE FROM EMP
WHERE DEPTNO=20;
delete from "SCOTT"."EMP" where "EMPNO" = '7566'
and “ENAME” = ‘JONES’ and "JOB" = 'MANAGER' and "MGR" = '7839'
and “HIREDATE” = TO_DATE(‘81-04-02’, ‘RR-MM-DD’) and "SAL" = '2975'
and "COMM" IS NULL and "DEPTNO" = '20' and ROWID = 'AAAD8yAAEAAA+k7AAD';
delete from "SCOTT"."EMP" where "EMPNO" = '7788'
and "ENAME" = 'SCOTT' and "JOB" = 'ANALYST' and "MGR" = '7566'
and "HIREDATE" = TO_DATE('87-04-19', 'RR-MM-DD') and "SAL" = '3000'
and "COMM" IS NULL and "DEPTNO" = '20' and ROWID = 'AAAD8yAAEAAA+k7AAE';
delete from "SCOTT"."EMP" where "EMPNO" = '7876'
and "ENAME" = 'ADAMS' and "JOB" = 'CLERK' and "MGR" = '7788'
and "HIREDATE" = TO_DATE('87-05-23', 'RR-MM-DD') and "SAL" = '1100'
and "COMM" IS NULL and "DEPTNO" = '20' and ROWID = 'AAAD8yAAEAAA+k7AAF';
delete from "SCOTT"."EMP" where "EMPNO" = '7902'
and "ENAME" = 'FORD' and "JOB“ = 'ANALYST' and "MGR" = '7566'
and "HIREDATE" = TO_DATE('81-12-03', 'RR-MM-DD') and "SAL" = '3000'
and "COMM" IS NULL and "DEPTNO" = '20' and ROWID = 'AAAD8yAAEAAA+k7AAG';
delete from "SCOTT"."EMP" where "EMPNO" = '7369'
and "ENAME" = 'SMITH' and "JOB" = 'CLERK' and "MGR" = '7902'
and "HIREDATE" = TO_DATE('80-12-17', 'RR-MM-DD') and "SAL" = '800'
and "COMM" IS NULL and "DEPTNO" = '20' and ROWID = 'AAAD8yAAEAAA+k7AAH';
23. Copyright @2015 Insight Technology, Inc. All Right Reserved
1.プライマリーキーの条件を付加して生成
2.ソースデータベースのSQL文が2レコード更新した場合には、各レコード毎に
更新するSQLが生成
3.計算式は、固定値に変換して生成
ロジカルレプリケーション:SQL Apply
Source DB Target DB
update PRICES
set PRICE = PRICE - (PRICE * .10)
where PRODUCT_CAT = ‘OLD_STOCK';
update PRICES
set PRICE = 10
where PROD_ID = 101;
update PRICES
set PRICE = 23
where PROD_ID = 102;
24. Copyright @2015 Insight Technology, Inc. All Right Reserved
1. 非対応データタイプの確認
Oracleの場合、BFILE/ROWID/UROWID/ユーザー定義型/REFなど
2. プライマリキーを持たないテーブルの確認
プライマリキーを持たないテーブルは、レプリケーションにおけるパフォ
ーマンスに注意が必要
3. レプリケーション時のサーバ負荷・パフォーマンスの確認
連携元データベースへの負荷・データ転送・変更データ適用が追いつくか
ロジカルレプリケーションにおける注意点
25. Copyright @2015 Insight Technology, Inc. All Right Reserved
データベース連携・移行
拠点-A
Copyright @2015 Insight Technology, Inc. All Right Reserved
③災害対策
拠点-B
拠点-C
②統合
①移行
ロジカルレプリケーションでオンプレミス・マルチクラウドをシームレスに連携
オンプレミス
26.
27. Copyright @2015 Insight Technology, Inc. All Right Reserved
Source DB Target DB
Change
Data
Capture
トランザクションログ
EMP
DEPT
SALGRADE
EMP
DEPT
SALGRADE
データベースデータ連携(Logical Replication)
INSERT
UPDATE
DELETE
INSERT
UPDATE
DELETE
28. Copyright @2015 Insight Technology, Inc. All Right Reserved
Source DB Target DB
トランザクションログ
EMP
DEPT
SALGRADE
EMP
DEPT
SALGRADE
Attunity Replicateデータベースデータ連携
INSERT
UPDATE
DELETE
30. Copyright @2015 Insight Technology, Inc. All Right Reserved
Attunity Replicateサポートデータベース
LUW(Linux/Unix/Windows)
As same as Replication sources
Large DW Platforms
Actian Vector
Oracle Exadata
Microsoft PDW
HP Vertica
Pivottal Greenplum Database
Teradata
IBM Netezza
Amazon Redshift
LUW(Linux/Unix/Windows)
Saleforce(Full Load only)
Any source with ODBC(Full Load only)
Mainframe
DB2
IMS/DB
VSAM
IBM iSeries
DB2/400
HP NonStop
Enscribe ・SQL/MP
Replication Sources Replication Targets
31. Copyright @2015 Insight Technology, Inc. All Right Reserved
• DBサーバ側エージェントレス
• 初期同期(FULL LOAD)から差分同期(CDC)までシームレスにデータ連携
• ブラウザベースのGUIによる簡易設定・監視
• 異種データベース間のテーブル高速データ転送・同期(マルチDB対応)
32. On-Premises(Lenovo X230)
db.t1.micro
Location : Tokyo
Region(ap-northeast-1a)
Processor : 1vCPU
Memory : 613MB
Virtual Server
Location : Tokyo2
Processor : 1 CORE
Memory : 1024MB
Processor : 1 core
Memory : 1024MB
DEMO:Attunity Replicate
No TABLE NAME COUNT
1 CUSTOMER 30,000
2 DISTRICT 10
3 HISTORY 30,000
4 ITEM 100,000
5 STOCK 100,000
6 ORDERS 30,000
7 ORDER_LINE 299,617
8 NEW_ORDER 9,000
9 WAREHOUSE 1
175MB 598,628
Service Plan : Basic
Location : Japan West
Performance Level :
S0(10 DTU)
データベース負荷テスト
ベンチ マーキング ・ ツール
TPC-C