マルチ・スレッド・アンローダーの紹介

Similar documents
Oracle Data Pumpのパラレル機能


Oracle Data Pumpのパラレル機能

Oracle 入門 ~ 研修受講後のスキルアップサポート ~ 対応バージョン :Oracle 10gR1 ~ 12cR1 本資料は アシスト Oracle 研修をご受講いただいたお客様からのご質問や 研修ではご案内できなかった情報などを FAQ にまとめたものです 研修受講後のスキルアップの一助とし

ORACLE PARTITIONING

3/7 マイグレーション開発方針 顧客名 0 作成者 根岸正 < プログラム移行方針 > システム名称 A-VX システムマイグレーション作成日 2015/09/01 < COBOL 資産のプログラム移行 > COBOLソース ( メインとCOPYLIB) を入力としてSCC 言語変換ツールにてVB

領域サイズの見積方法

Oracle SQL Developer Data Modeler

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

今さら聞けない!? Oracle入門 ~前編~

今さら聞けない!? Oracle入門 ~後編~

プレポスト【問題】

Oracle Advanced Compression:ディスクの節約とデータベースの高速化を可能にする包括的な圧縮機能

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第8版  

intra-mart Accel Platform — TableMaintenance ユーザ操作ガイド   第7版   None

Oracle Database 12cでのSQL*LoaderのExpress Modeによるロード

ORACLE TUNING PACK 11G

キャラクタ・セットの移行に関するベスト・プラクティス

第 7 章 ユーザー データ用表領域の管理 この章では 表や索引を格納するユーザー データ用表領域の作成や 作成後のメンテナンスに ついて解説します 1. ユーザー データ用表領域の管理概要 2. ユーザー データ用表領域作成時の考慮事項 3. ユーザー データ用表領域の作成 4. ユーザー データ

PowerPoint Presentation

uCosminexus EUR 08-20新機能のご紹介

PowerRW+からPowerRDBconnectorへの移行手引書


Oracle Real Application Clusters 10g: 第4世代

WebSAM Storage ReplicationNavigator WebSAM Storage ReplicationNavigator Oracle RAC Option 本製品を販売する場合 事前に下記問い合わせ先へご連絡をお願いします < 問い合わせ先 > 8. 問い合わせ窓口 を参照し

使用する前に

PowerPoint -O80_REP.PDF

Oracle SQL Developerの移行機能を使用したOracle Databaseへの移行

データベース暗号化ツール「D’Amo」性能検証

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

はじめに コースの概要と目的 Oracle をより効率的に使用するための SQL のチューニング方法について説明します また 索引の有無 SQL の 記述方法がパフォーマンスにどのように影響するのかを実習を通して理解します 受講対象者 アプリケーション開発者 / データベース管理者の方 前提条件 S

Microsoft Word - L08_Backup_Lab.docx

ハイウォーターマークを知る

CLUSTERPRO MC StorageSaver 2.2 for Linux リリースメモ 2017(Apr) NEC Corporation ライセンス パッケージのインストール セットアップ マニュアル 補足事項 注意事項

第 3 章 メディア障害とバックアップ リカバリ この章では メディア障害の発生に備えたバックアップ方法と 障害時の基本的なリカバリ方法につい て説明します 1. メディア リカバリ概要 2. ファイルの多重化 3. アーカイブ モードの設定 4. バックアップ概要 5. 一貫性バックアップ ( オ

Microsoft Word - nvsi_080188jp_r1_netvault_oracle_rac_backup_complemental_guide_j_174x217.doc

Microsoft Word - J-jdev_dba_db_developers.doc

DrSumEA_ServerC_本文.indd

Slide 1

HULFT-DataMagic Ver2.2.0 製品対応OS

Microsoft Word - JDBC検証 docx

Oracle Database Clientリリース・ノート, 10gリリース1( ) for Microsoft Windows

メール全文検索アプリケーション Sylph-Searcher のご紹介 SRA OSS, Inc. 日本支社技術部チーフエンジニア Sylpheed 開発者 山本博之 Copyright 2007 SRA OSS, Inc. Japan All right

本書は INpMac v2.20(intime 5.2 INplc 3 Windows7/8/8.1に対応 ) の内容を元に記載しています Microsoft Windows Visual Studio は 米国 Microsoft Corporation の米国及びその他の国における登録商標です

( ハイブリット型データベース環境 ) プロトタイプ検証結果 第二版 有限会社ツインズ Twinz Co., Ltd 年 7 月 3 日 /15

_02_3.ppt

マニュアル訂正連絡票

スライド 1

第 2 章 問合せの基本操作 この章では データベースから情報を検索する際に使用する SELECT コマンド および SELECT コマンドと 同時に使用する句について説明します 1. 問合せとは 2. 基本的な問合せ 3. 列の別名 4. 重複行を一意にする 5. 検索行の絞込み 6. 文字パター

第 5 章 結合 結合のパフォーマンスに影響を与える結合の種類と 表の結合順序について内部動作を交えて 説明します 1. 結合処理のチューニング概要 2. 結合の種類 3. 結合順序 4. 結合処理のチューニングポイント 5. 結合関連のヒント

Microsoft PowerPoint - 3-Forms-Others.ppt

データセンターの効率的な資源活用のためのデータ収集・照会システムの設計

Enterprise Cloud + 紹介資料

VB実用Ⅲ⑩ フリーデータベースⅡ

商標類 Microsoft は, 米国およびその他の国における米国 Microsoft Corp. の登録商標です Microsoft Office は, 米国 Microsoft Corp. の商品名称です Microsoft Excel は, 米国 Microsoft Corp. の商品名称です

Microsoft PowerPoint - 第5章補足-DB2組み込みSQL.ppt

アプリケーション インスペクションの特別なアクション(インスペクション ポリシー マップ)

MxLogonサーバサイドツールキット用UI

アジェンダ Oracle サーバの見える化はなぜ必要? WebSAMApplicationNavigator で簡単 安心に監視を実現 Oracle 監視の導入コスト 2 NEC Corporation 2009

商標類 Microsoft は, 米国およびその他の国における米国 Microsoft Corp. の登録商標です Microsoft Office は, 米国 Microsoft Corp. の商品名称です Microsoft Excel は, 米国 Microsoft Corp. の商品名称です

PowerPoint プレゼンテーション

Pervasive PSQL v11 のベンチマーク パフォーマンスの結果

スライド 1

データベース 【1:データベースシステムとは】

Microsoft PowerPoint - J-S301167_idx_comp.ppt [互換モード]

第 2 章 PL/SQL の基本記述 この章では PL/SQL プログラムの基本的な記述方法について説明します 1. 宣言部 2. 実行部 3. 例外処理部

Oracleデータベース監査:パフォーマンス・ガイドライン

目次 1 VirtualBoot for Hyper-V とは バックアップを実行するマシンの設定 確認すべきこと SPX によるバックアップ VirtualBoot for Hyper-V を実行するマシンの設定 確

目次 1 はじめに 利用条件 動作環境 アドインのインストール アドインの操作方法 アドインの実行 Excel CSV の出力 テンプレートの作成 編集 テンプレートのレイアウト変更 特記

(Veritas\231 System Recovery 16 Monitor Readme)

Oracle Database 10g Release 2を使用したデータベース・パフォーマンス

改版履歴 版数改版履歴改版年月日 1.0 新規作成 2013/03/ OverAction と DiskStallAction の値変更 (ActionNone ServiceCmdDisable ProcessOfRdmstatKillEnable ServiceCmdEnable)

Visual Basic Oracle Database 11 Release 1

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft

Transcription:

マルチ スレッド アンローダー Oracle 用高速 CSV 出力ツール 製品紹介サイト http://www.mtu-accelerates.jp/ 開発 / 販売 : 株式会社プラムシックス 1

アンローダーの用途 論理バックアップ 物理 (RMAN) バックアップのみでは回復できない (*1) プログラムのバグやヒューマンエラーによるデータ消失に対する備え システム間インターフェース ホストコンピュータによるバッチ処理 帳票出力へのデータ供給 データ移行 限られた時間内での速やかなデータ移動 ( 精度の高い所要時間見積 ) システムテストデータの準備 条件を変えて繰返しテストする為データ セットの容易で迅速な巻き戻し データ比較 / 分析 NoSQL を使ってリソース集約的な計算を行う為のデータ ステージング 表や索引のチューニング 逆順キーの追加や行移行により生じた非効率な領域使用の解消 2 *1: 但しフラッシュバック データベースやフラッシュバック トランザクション等 Enterprise Edition で利用できる有償オプション あるいは Point in-time Recovery を使うと回復できる場合があります

汎用化と大量データ対応への課題 読取り一貫性 ( 分離レベル ) 大量データのアンロードは時間が掛かります 開始と終了の間にトランザクションがあった場合 デフォルトの設定では問合せ相互の読取り一貫性が保たれません 整合性制約 索引 データベース トリガー REDO ログの発生 上記はアンロードしたデータを再ロードする際の所要時間長期化や空き領域を逼迫させる原因です これらを回避するには Oracle Database の専門的な知識が要求されます データ用途の多様性 さまざまなアプリケーションへの入力にアンロードデータを使いたい場合には書式や入出力方法を自由に選べると便利です データ型の多様性 LOB やタイムスタンプ型 間隔型といった比較的新しくサポートされた Oracle データ型にも対応できると更に用途が広がります 言語や地域毎のデータ表現の多様性 Unicode や日本語以外の文字セットの出力 数値や通貨 日付時刻の文字列表現をパラメータで自由に選択できると便利です 3

基本機能 : UNLOAD 環境設定ファイル 接続先テーブル名のリスト スキーマ全部の表 LISTTABLE LISTEXCPT FILETABLE FILEEXCPT データ出力先など 2. 接続 3. ディクショナリ 6. Select 実行 7. 記述子 MTU 1. 読取 4. 対象リスト作成 ( 網掛部 ) 9. メタ データ SQL*Loader 制御ファイル 13. 書込み ( 繰返し ) データファイル Oracle Database 11. フェッチ ( 繰返し ) 5. SQL select 文作成 8. 記述子の解析 10. データバッファ割当 12. 書式化変換 ( 繰返し ) CSV TSV 固定長形式 任意のデリミタ セパレータによる可変長形式 15. SQL スクリプト組立て COBOL 形式 14. ディクショナリ 16. スクリプト 17. 開放 進捗表示メッセージ 戻り値 =0: Good >0: NG 管理スクリプト Unload は表データのフルセットを戻す機能です 4

基本機能 : QUERY バインド変数定義ファイル key = value 形式でバインド変数の値を定義 文字列型 数値型の値を定義可能 任意問合せファイル SQL select が記述されているバインド変数を含めることが可能 環境設定ファイル 接続先 問合せファイル バインド変数定義ファイルの場所 4. バインド変数の読取 2. 接続 7. Select 実行 8. 記述子 3. SQL 文の読取 MTU 5. SQL select 文作成 データ出力先など 1. 読取 10. メタ データ SQL*Loader 制御ファイル 14. 書込み ( 繰返し ) データファイル Oracle Database 12. フェッチ ( 繰返し ) 6. バインド操作 9. 記述子の解析 11. データバッファ割当 13. 書式化変換 ( 繰返し ) CSV TSV 固定長形式 任意のデリミタ セパレータによる可変長形式 COBOL 形式 16. 開放 進捗表示メッセージ 戻り値 =0: Good >0: NG Query は SQL Select 文で表現可能なあらゆる問い合わせの結果を戻す機能です 15. スクリプト 管理スクリプト 5

複数作業を同時にこなす 開始 開始 作業 A 作業 B スレッド生成 作業 A 作業 B 作業 C 作業 C 同期 終了 終了 シングル スレッド プロセス マルチ スレッド プロセス 6

マルチコアを有効に使う マルチコアプロセッサ 所要時間 シングルスレッド 作業 n 作業 m スレッド #1 作業 m スレッド #2 スレッド #3 スレッド #4 作業 n 7

非同期ファイル操作 同期式 OCI 呼び出し OCI 呼び出し 非同期式 オーバラップ 所要時間 書式化バッファリングファイル操作 書式化 OCI 呼び出し OCI 呼び出し 8

タスク制御 18:20 18:30 18:40 18:50 19:00 19:10 19:20 TBL001 TBL002 TBL003 TBL004 TBL005 TBL006 TBL007 TBL008 TBL009 TBL010 TBL011 TBL012 TBL013 TBL014 TBL015 TBL016 TBL017 TBL018 TBL019 TBL020 TBL021 TBL022 TBL023 TBL024 TBL025 TBL026 TBL027 TBL028 TBL029 TBL030 TBL031 TBL032 TBL033 TBL034 TBL035 TBL036 TBL037 TBL038 TBL039 TBL040 TBL041 TBL042 TBL043 TBL044 TBL045 TBL046 TBL047 TBL048 TBL049 TBL050 TBL051 TBL052 TBL053 TBL054 TBL055 TBL056 TBL057 TBL058 TBL059 TBL060 TBL061 TBL062 TBL063 TBL064 TBL065 TBL066 TBL067 TBL068 TBL069 TBL070 TBL071 TBL072 TBL073 TBL074 TBL075 TBL076 TBL077 TBL078 TBL079 TBL080 TBL081 TBL082 TBL083 TBL084 TBL085 TBL086 TBL087 TBL088 TBL089 TBL090 TBL091 TBL092 TBL093 TBL094 TBL095 TBL096 TBL097 TBL098 TBL099 TBL100 TBL101 TBL102 TBL103 TBL104 TBL105 開始 A DA, B, C どの局面でも同じ並列度 ( 図では 16) を維持 マルチ コアの持続的な並列利用となるようスケジューリング B C 終了 9

データの安全性 OCI = Oracle Call Inteface Select 実行 OCI.dll Export ( 従来パス ) OCI.dll MTU データの読取に標準でバンドルされているツールと同じもの (OCI.dll) を使用 だから安全 Oracle Database フェッチ ( 繰返し ) OCI.dll SQL*Plus LoadLibrary OCI.dll ODP.NET OCI.dll Oracle Database クライアント製品 10

何故速いのか? 所要時間 1 2 3 1 行ずつ受け取って処理を行うプログラムは簡単に作れる半面 クライアント側のオーバーヘッドが大きい 行をまとめて一括処理 4 配列化 要求パケットの到達時間 応答パケットの到達時間 1 2 3 4 3 データの転送時間 1 往復毎のクライアント処理時間 11

その他の特長 OCI 配列インタフェース処理 製品固有コードの最適化 パーティショニング対応 Unicode 出力対応 名前付きパイプへの出力 SAM(Sequential Access Method) 出力 SQL*Loader 用制御ファイルの自動生成 索引 整合性制約 データベーストリガの無効化有効化スクリプト作成 再ロード時の並列処理 12

OCI 配列インタフェース処理 表 Oracle Net Services MTU arra[0] arra[1] arra[2] arra[3] arra[4] fn(void){ char *a = calloc(5,< 列 A のデータ長 >); char *arra[5]; arra[0] = &a[0 * < 列 A のデータ長 >]; arra[1] = &a[1 * < 列 A のデータ長 >]; } ディスク 一括書込 配列要素数分の行データを一括読取 ヒープ メモリ abcdef, gopi234, 546823, abthtu, 99532, abfewr t00oi234, jio234, juo23, bh234, z-@po, 8yaw bsdfewt, k81234, kyu2, zhyi, iyu43, 8u@- 986bjfs, 87zka, yt6t82, 08oiqw, hh8[03, 87y:;nb zgffis,, klyp98, 8uyt[uj, khh23b, klhhun,m, 98yhjj 少ないラウンドトリップ数 13

製品固有コードの最適化 void func(void) { sword iocirtn; iocirtn = OCIStmtPrepare (stmtp, ); /*( ホスト入力変数のバインド )*/ iocirtn = OCIStmtExecute (svchp, stmtp, ); /*( 暗黙的パラメータ記述の解析 )*/ /*( ホスト出力変数の定義 )*/ /*(SQL*Loser 制御ファイル出力 )*/ while (iocirtn!= OCI_NO_DATA) { iocirtn = OCIStmtFetch2 (svchp, stmtp, ); /* ホスト出力変数を CSV or 固定長データ形式へ変換 */ WriteFileEx (hfile, lpbuffer, ); } } 製品固有コード MTU 待機要因 70% (OCI) 10% 20% (Windows API) 14

パーティショニング対応 パーティション サブパーティション スレッド #1 スレッド #2 スレッド #3 p5 p6 p2 パーティション化表 データファイルの同時並列出力 15

UNICODE 出力対応 データベース キャラクタセット : AL32UTF8 各国語キャラクタセット : AL16UTF16 MTU SQL*Loader Oracle データ型 CHAR VARCHAR2 NCHAR NVARCHAR2 LONG CLOB NCLOB MTU 出力文字エンコーディング UTF-8 (BOM 付 /BOM 無選択可能 ) UTF-16 BE 16

名前付きパイプへの出力 パーティション表 : ABC パーティション : P1,P2,P3 P4,P5,P6 MTU v4.1 以上 CPU. pipe ABC_P1. pipe ABC_P2. pipe ABC_P3. pipe ABC_P4. pipe ABC_P5. pipe ABC_P6 名前付きパイプからデータ入力可能な既存アプリケーション H/W プラットホームのスケーラビリティーに適した数の名前付きパイプを配置してパイプライン化 17

PL/SQL フリー サーバプロセス サーバプロセス MTU 組込パッケージ : UTL_FILE DBMS_DATAPUMP リモート接続 CSV dmp 表領域 CSV 高価なストレージ基盤による I/O 性能や可用性の確保が不可欠 廉価なストレージで十分 18

SAM 出力 IBM 互換メインフレーム用の COBOL 言語で扱う SAM と互換性のある形式でファイル出力可能です NUMBER 型 :COMP-3 ( パック 10 進数 ) で出力できます DISPLAY SIGN LEADING SEPARATE 形式の BCD (Binary Coded Decimal) を選ぶ事も出来ます NCHAR / NVARCHAR2 型 : マルチバイト文字の出力に UTF-16LE UTF-16BE いずれかを選択できます 19

競合製品との機能比較 MTU v4.2 FUO r11.2 Oracleへのリモート接続 64bit 版 Windows 再ロード用スクリプト作成 再ロード時のパラレル処理 表ロックを掛けない一貫性読取り 実行時の強力なOSのシステム権限 不要 必要 接続時フェイルオーバ 透過的アプリケーションフェイルオーバ ASM 上のデータ抽出 並列度制限 無 有 データの出力先 ローカル 共有フォルダ ローカルのみ 領域あふれ時のフェイルオーバ 並列化可能なパイプ処理 ヒープ構成表の並列アンロード 20

SQL*LOADER 用制御ファイルの自動生成 UNRECOVERABLE LOAD INFILE EMP "VAR 10" INTO TABLE "EMP" TRUNCATE REENABLE FIELDS TERMINATED BY ',' ( "EMPNO" DECIMAL EXTERNAL(5), "ENAME" CHAR(10) ENCLOSED BY '"', "JOB" CHAR(9) ENCLOSED BY '"', "MGR" DECIMAL EXTERNAL(5), "HIREDATE" DATE(14) "YYYYMMDDHH24MISS" ENCLOSED BY '"', "SAL" DECIMAL EXTERNAL(9), "COMM" DECIMAL EXTERNAL(9), "DEPTNO" DECIMAL EXTERNAL(3) ) 21

索引 整合性制約 データベーストリガの無効化有効化スクリプト作成 開始 開始 索引等の無効化 SQL*Loader SQL*Loader 索引等の有効化 内部処理あり 終了 終了 22

再ロード時の並列処理 開始 索引等の無効化 MPX スレッド生成プロセス生成同期 SQL*Loader スレッド生成プロセス生成 有効化索引等の有効化 更に速い!! 終了 同期 23

用途例 : 単純なデータだけの移行 Oracle Server Export Oracle Client MTU で UnLoad Create Table, Create Index, Create Trigger, Alter Table Add Constrant, Grant on, Insert into, Analyze Table 制御ファイル, データファイル (CSV or 固定長 ) 24

用途例 : 下方データ移行 Oracle 12c/11g/10g Server 12c/11g/10g 付属 Export MTU でUnLoad Oracle 12c/11g/10g Client 8i/9i 付属 Import 8i/9i 付属 SQL*Loader Oracle 8i/9i Server 25

用途例 : 上方データ移行 Oracle 12c/11g/10g Server 12c/11g/10g 付属 Import 12c/11g/10g 付属 SQL*Loader Oracle 12c/11g/10g Client 12c/11g/10g 付属 Export MTU で UnLoad Oracle 8i/9i Server 26

ありがとうございました 提供 : 株式会社プラムシックス http://www.mtu-accelerates.jp/ マルチ スレッド アンローダー Multi-threaded Unloaderは株式会社プラムシックスの登録商標です オラクル および ORACLE は米国 Oracle Corporationの登録商標です Microsoft Windows Windows Serverは 米国 Microsoft Corporationの米国およびその他の国における登録商標または商標です 他のブランドおよび製品名は 各社の商標および登録商標です 27