34

20151120_ビッグデータ/クラウドにデータ連携自由自在 “オンプレミス ↔ クラウド ↔ クラウド” by 株式会社インサイトテクノロジー 森田俊哉

Embed Size (px)

Citation preview

ビックデータ/クラウドデータ連携

次世代データ基盤に必須の技術~リアルタイムデータ連携テクノロジー~

プロダクトコンサルティング事業部森田 俊哉

自己紹介

■名前 森田 俊哉 / Toshiya Morita

■所属 株式会社インサイトテクノロジープロダクトコンサルティング事業部部長兼取締役

■主な仕事 DBA 及び データベースコンサルティング

■過去の職歴 C言語プログラマー/デバッガー開発UNIX管理者等々

データベースもクラウドへ…?

Private Cloud Public Cloud

Hybrid Cloud

クラウドファースト

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移設

データは、適材適所に…?

BigDataHadoop

NoSQL

ERP CRMSCMWeb/SNS センサー マルチメディアアクセスログ

分析系DB 基幹系DB

データソースも様々! [データ基盤も様々]

データソース

データも適材適所?! [データベースマッピング]

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

Attunity Replicateによるマルチデータベースのデータ連携と移行

Copyright @2015 Insight Technology, Inc. All Right Reserved

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

続いては・・・

「極小のダウンタイム/準備期間でOracle移行を実現」