20151120_ビッグデータ/クラウドにデータ連携自由自在 “オンプレミス ↔...
TRANSCRIPT
自己紹介
■名前 森田 俊哉 / Toshiya Morita
■所属 株式会社インサイトテクノロジープロダクトコンサルティング事業部部長兼取締役
■主な仕事 DBA 及び データベースコンサルティング
■過去の職歴 C言語プログラマー/デバッガー開発UNIX管理者等々
クラウドファースト
Copyright @2015 Insight Technology, Inc. All Right Reserved
8割の企業が新規システムの構築時にクラウドを検討、クラウドファーストの浸透が顕著に セキュリティに対する不安やクラウドの移行・運用コストが利用障壁に
出典:MM総研「国内クラウドサービス需要動向(2014年版) http://www.m2ri.jp/newsreleases/main.php?id=010120141104500
0
5,000
10,000
15,000
20,000
2013年度 2014年度 2015年度 2016年度 2017年度 2018年度
国内クラウドサービス市場規模 実績・予測
プライベートクラウド(ホステッド/オンプレミス/コミュニティ)
パブリッククラウド(SaaS/IaaS/PaaS)16.0%
13.6%
10.9%37.6%
21.9%
新規システム構築方法
原則的にクラウド事業者のプライベートクラウド
原則的に自社資産のプライベートクラウド
原則的にパブリッククラウド
クラウドとオンプレミスのメリットを勘案し、最適な方法で
原則的にオンプレミス(非クラウド環境)
データベースもクラウドへ!
8割の企業が新規システムの構築時にクラウドを検討、クラウドファーストの浸透が顕著に セキュリティに対する不安やクラウドの移行・運用コストが利用障壁に
データベース基盤におけるクラウド活用
6
リモートバックアップの配置先に活用
基幹系・業務系システムとして活用
オンプレミス環境の災害環境として活用
開発環境検証環境テスト環境として活用情報系(BI/DWH)
として活用
Private Cloud Public Cloud Hybrid Cloud
データベースに対するクラウド活用についても、Amazon/MS/IBMによる積極的なデータベースサービス展開もあり下記のような用途でのクラウド活用事例が増加中
データベースのクラウド化には、オンプレ・クラウド間のデータ連携がキーになる
Copyright @2015 Insight Technology, Inc. All Right Reserved
34.3%
41.0%
47.5%
16.6%
21.4%
29.0%
複数データセンター間での柔軟なリソース増強
(スケールアウト)
複数データセンター間での
データ移行・バックアップ・VM移設
データセンター内での柔軟なリソース増強
(スケールアップ・スケールアウト)
クラウド非推進企業
クラウド推進企業
出典「ITR:クラウド/ICTアウトソーシング同行調査2012」
複数データセンター間でのデータ移行・バックアップ・VM移設
データも適材適所?! [データベースマッピング]
Mission Critical Leader Challenger
BigData
SQL on Hadoop
Cloud NoSQL
Hadoop
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
Copyright @2015 Insight Technology, Inc. All Right Reserved
データベースデータ連携(データ同期)~1
Source DB Target DB
EMP
DEPT
SALGRADE
EMP
DEPT
SALGRADE
初期同期(COPY)
Copyright @2015 Insight Technology, Inc. All Right Reserved
Source DB Target DB
Change Data
Capture
トランザクションログ
EMP
DEPT
SALGRADE
EMP
DEPT
SALGRADE
Change DataApply
データベースデータ連携(データ同期)~2
INSERTUPDATEDELETE
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
データ連携方式比較
スタンバイ方式Physical Replication
ロジカルレプリケーション方式Logical Replication
プロダクト(Oracleの場合)Oracle DataGuardDbvisit Standby
Oracle GoldenGateAttunity Replicate
データ連携単位 DB Schema / TABLE
データ連携アーキテクチャ LOG Apply SQL Apply
転送タイミング即時~数秒*1 / LOG転送時
(自動)即時
(自動)
データ連携先利用 検索不可(検索可*1)検索可更新可
データベース構成 同一 不問
異種・異バージョンデータベース連携
*1) Active Data Guardの場合
Copyright @2015 Insight Technology, Inc. All Right Reserved
Source DB Target DB
Change Data
Capture
トランザクションログ
EMP
DEPT
SALGRADE
EMP
DEPT
SALGRADE
データベースデータ連携(Logical Replication)
Change DataApply
INSERTUPDATEDELETE
INSERT
UPD
ATE
DELETE
SQL
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文で、変更を実行した元の文の結果を取り消すために使用できる。
Copyright @2015 Insight Technology, Inc. All Right Reserved
プライマリーキーの条件を付加して生成
ロジカルレプリケーション:SQL Apply
再構築されたSQL文を別のデータベースに適用するアプリケーションでは、
行を一意に識別する列(主キーなど)で更新文(更新レコード)を識別する
必要がある。
Oracleの場合、ROWID はデータベースごとに異なり、他のデータベースでは意味を持たないため
V$LOGMNR_CONTENTSによって返される再構築されたSQL に示されるROWID では識別できない
ソースデータベース ターゲットデータベース
PK PK
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
トランザクションログにプライマリキーを付加
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';
ログマイナーの内容(サプリメンタルロギングの有効化後)
プライマリーキーまたは、全カラムの条件が付加されて生成
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';
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 = 10where PROD_ID = 101;
update PRICES set PRICE = 23where PROD_ID = 102;
Copyright @2015 Insight Technology, Inc. All Right Reserved
1. 非対応データタイプの確認Oracleの場合、BFILE/ROWID/UROWID/ユーザー定義型/REFなど
2. プライマリキーを持たないテーブルの確認プライマリキーを持たないテーブルは、レプリケーションにおけるパフォーマンスに注意が必要
3. レプリケーション時のサーバ負荷・パフォーマンスの確認連携元データベースへの負荷・データ転送・変更データ適用が追いつくか
ロジカルレプリケーションにおける注意点
Copyright @2015 Insight Technology, Inc. All Right Reserved
データベース連携・移行
拠点-A
Copyright @2015 Insight Technology, Inc. All Right Reserved
③災害対策拠点-B
拠点-C
②統合①移行
ロジカルレプリケーションでオンプレミス・マルチクラウドをシームレスに連携
オンプレミス
Copyright @2015 Insight Technology, Inc. All Right Reserved
Source DB Target DB
Change Data
Capture
トランザクションログ
EMP
DEPT
SALGRADE
EMP
DEPT
SALGRADE
データベースデータ連携(Logical Replication)
INSERTUPDATEDELETE
INSERT
UPD
ATE
DELETE
Copyright @2015 Insight Technology, Inc. All Right Reserved
Source DB Target DB
トランザクションログ
EMP
DEPT
SALGRADE
EMP
DEPT
SALGRADE
Attunity Replicateデータベースデータ連携
INSERTUPDATEDELETE
Copyright @2015 Insight Technology, Inc. All Right Reserved
Attunity Replicateサポートデータベース
LUW(Linux/Unix/Windows)As same as Replication sources
Large DW PlatformsActian Vector
Oracle ExadataMicrosoft PDW
HP VerticaPivottal Greenplum Database
TeradataIBM Netezza
Amazon Redshift
LUW(Linux/Unix/Windows)
Saleforce(Full Load only)Any source with ODBC(Full Load only)
MainframeDB2
IMS/DBVSAM
IBM iSeriesDB2/400
HP NonStopEnscribe ・SQL/MP
Replication Sources Replication Targets
Copyright @2015 Insight Technology, Inc. All Right Reserved
• DBサーバ側エージェントレス
• 初期同期(FULL LOAD)から差分同期(CDC)までシームレスにデータ連携
• ブラウザベースのGUIによる簡易設定・監視
• 異種データベース間のテーブル高速データ転送・同期(マルチDB対応)
On-Premises(Lenovo X230)
db.t1.microLocation : Tokyo Region(ap-northeast-1a)Processor : 1vCPUMemory : 613MB
Virtual ServerLocation : Tokyo2Processor : 1 COREMemory : 1024MB
Processor : 1 coreMemory : 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 : BasicLocation : Japan WestPerformance Level :
S0(10 DTU)
データベース負荷テストベンチ マーキング ・ ツール
TPC-C