• 検索結果がありません。

PowerPoint Presentation

N/A
N/A
Protected

Academic year: 2021

シェア "PowerPoint Presentation"

Copied!
41
0
0

読み込み中.... (全文を見る)

全文

(1)

<Insert Picture Here>

意外と知らない?!データローディングの基礎

Oracle

Direct Seminar

(2)

Agenda

データロードの種類

SQL*Loaderを使用したデータロード

外部表を使用したデータロード

・SQL Serverからの移行アセスメント

・MySQLからの移行相談

・PostgreSQLからの移行相談

・Accessからの移行アセスメント

・Oracle Database バージョンアップ支援

・Oracle Developer/2000 Webアップグレード相談

・パフォーマンス・クリニック

・Oracle 構成相談

・Oracle Database 高可用性診断

・システム連携アセスメント

・システムセキュリティ診断

・簡易業務診断

・メインフレーム資産活用

(3)

データロードの種類

1.中間ファイルを利用するもの

2.ネットワークを利用するもの(参考)

中間ファイル

Data Import/Export

Data Pump

SQL*Loader

外部表

トランスポータブル表領域

(参考)

DB Link + SQL

Oracle Transparent

Gateway

Oracle Data Integrator

(4)

Export Utility EXP xxx.dmp データの抽出

中間ファイルを利用するデータロード

クライアント

Data Import/Export

Data Pump

Import Utility IMP データのロード サーバ サーバ Export Utility EXPDP データの抽出xxx.dmp 転送 xxx.dmp Import Utility IMPDP データのロード

SQL*Loader

外部ファイル SQL*Loader データのロード

外部表+SQL

サーバ サーバ サーバ 外部表 ロード先表 INSERT INTO…. SELECT * FROM 外部ファイル ※ネットワーク経由も可

(5)

参考:トランスポータブル表領域(TTS)

Export Utility

EXPDP

(EXP)

xxx.dmp

Oracle Database

Oracle Database

データの抽出

データのロード

xxx.dmp

表領域の情報を抜き出す

転送

xxx.dbf

Import Utility

IMPDP

(IMP)

Enterprise

Edition

データファイルを

コピーする

コピー元の表領

域を読みとり専用

(6)

Data

Export/Import

Data pump

SQL*Loader

外部表

ソース

Oracle DB

Oracle DB

外部ファイル

外部ファイル

/Oracle DB

主な用途

論理

Backupツール

論理

Backupツール

テキスト・

ローディング

テキスト・

ローディング

Datapump

ローディング

利用可能な

Version

Version5.X以前~

10g~

Version6.X以前~

9i~

10g~(アンロード)

実行形態

Client側で実行可

(Net経由)

Server側で実行

Client側で実行可

(Net経由)

Server側で実行

ファイル

形式

独自

独自

(Data Exp/Impと

互換性はなし)

テキスト

(固定長/可変長)

テキスト

(固定長/可変長)

独自(DataPump)

中間ファイルを利用するデータロード(特徴)

本セミナー内容

(7)

参考:Data Export/ImportとData Pump

Export Utility EXP xxx.dmp データの抽出 クライアント

Data Import/Export

Data Pump

Import Utility IMP データのロード サーバ サーバ Export Utility EXPDP データの抽出 xxx.dmp 転送 xxx.dmp Import Utility IMPDP サーバ サーバ

特徴:

ダンプファイルはクライアント側に

格納される

Data Pump Import/Exportと

比べた場合、比較的低速

Oracle Database 10g以降は

Data Pump Import/Exportの

使用を推奨

特徴:

ダンプファイルはサーバ側に

格納される

9iまでのexp/impと

同等の機能+更なる付加機能を

持つ、新たな機能を搭載

Exp/impに比べ、数倍高速

パラレル処理が実行可能

exp/imp と、Data Pumpで

ダンプファイルの互換性はない

(8)

Agenda

はじめに

データロードの種類

SQL*Loaderを使用したデータロード

外部表を使用したデータロード

・SQL Serverからの移行アセスメント

・MySQLからの移行相談

・PostgreSQLからの移行相談

・Accessからの移行アセスメント

・Oracle Database バージョンアップ支援

・Oracle Developer/2000 Webアップグレード相談

・パフォーマンス・クリニック

・Oracle 構成相談

・Oracle Database 高可用性診断

・システム連携アセスメント

・システムセキュリティ診断

・簡易業務診断

・メインフレーム資産活用

(9)

Oracle Database

データのロード

SQL*Loaderを使用したデータロード

SQL*Loader

外部ファイル

(text,csv)

SQL*Loaderを使用することで外部ファイルのデータを

Oracleデータベースの表にロードすることが可能

(10)

SQL*Loaderの特徴

柔軟性/高速性に応じた2つのモードを用意

従来型パス・モード

ダイレクト・パス・モード

様々な形式(固定長や可変長)、様々な文字コード(EUC,SJIS)の

外部データの取り込みが可能

同時に複数の表へロードが可能

複数のデータファイルから一度に同じ表へロードが可能

(11)

SQL*Loaderに関するファイル

ログファイル

ロード件数やロード中に発生した

エラーログなどを記録するファイル

廃棄ファイル

エラー以外の理由により

ロードされなかった

レコードを記録するファイル

不良ファイル

エラーによりロードされなかった

レコードを記録するファイル

制御ファイル

データの場所、

データの挿入先

データの分析などが

記述されたファイル

データファイル

ロードするデータが

格納されたファイル

SQL*Loader

データベース

(12)

SQL*Loader

従来型パスロード

従来型パスロードでは

テキストデータを読み取りながら

内部的に INSERT を発行

Insertと同程度の時間がかかる

SQLコマンドの生成

キャッシュ上の

ブロックへの書き込み

ディスクへの書き込み

REDOログ・

バッファ

データベース・

バッファ・キャッシュ

共有プール

SGA

(13)

SQL*Loader

ダイレクト・パス・ロード

制限事項

例:)

ロードする間テーブルに

ロックがかかる

参照整合性制約、トリガーなど

バッファキャッシュを迂回し、

表に割り当てられたエクステントに

直接ブロックが保存される。

ブロックイメージを作成

ディスクへの書き込み

REDOログ・

バッファ

データベース・

バッファ・キャッシュ

共有プール

(14)

従来型パスロードVSダイレクトパスロード

1回あたりのロード時間

※従来型パスロードのロード時間を1とした場合の 相対処理時間 (実際の処理時間に任意の数を掛けています) ※資料中に掲載されている検証内容は、特定環境における検証結果に ついての報告であり、すべての環境において同様の動作を保証するも のではありませんので、予めご了承ください。 ※5,000 レコードロードの結果 0.30

ダイレクト

パスロード

従来型

パスロード

ダイレクトパスロード

従来型パスロード

ダイレクトパスロードは

従来型パスロードと比べ非常に高速

0.2 0.4 0.6 0.8 1.0

(15)

参考:SQL*Loaderの使用方法

1.外部ファイルを準備する

例:emp.dat, emp.csv,emp.txt

2.制御ファイルの作成

viエディタ等で制御ファイルを作成

<制御ファイルサンプル samp1.ctl>

1 OPTIONS(

2

DIRECT = TRUE,

3 )

4

5 LOAD DATA

6 INFILE ‘emp.dat'

7 INTO TABLE tab_samp1

8 APPEND

9 FIELDS TERMINATED BY ','

10 (empno,ename)

モードを選択

例:ダイレクトパスロードを使

用する場合

emp.dat

1 7499,ALLEN

2 7521,WARD

3 7566,JONES

(16)

参考:SQL*Loaderの使用方法

3. SQL*Loaderの実行

% sqlldr scott/tiger control=samp1.ctl

SQL*Loader: Release 11.2.0.1.0 - Production on 水 Sept 1 21:14:26 2010

(c) Copyright 1982, 2009, Oracle and/or its affiliates. All rights reserved.

コミット・ポイントに達しました。 - 論理レコード件数 3

4.ロード結果の確認

1 SQL> select * from tab_samp1;

2

EMPNO ENAME

3 ---

---4

1 Yamada

5

2 Suzuki

6

3 Tanaka

(17)

パラレル・ダイレクト・パス・ロード

複数のセッションを同時に実行して、

同一の表またはパーティション表の同一パーティション

に対してダイレクト・パス・ロードを実行

ダイレクト・パス・ロードのパフォー

マンスが向上

P1

P2

P3

P4

パラレル処理

P1

シリアル処理

待機

(18)

参考:パラレル・ダイレクト・パス・ロード設定方法

1.ローディング用ファイルを準備する

例:emp1.dat, emp2.dat, emp3.dat

2.制御ファイルをそれぞれのセッション毎に作成

<制御ファイルサンプル samp1.ctl>

1 OPTIONS(

2 DIRECT = TRUE,

3 PARALLEL =

TRUE

4 )

5 LOAD DATA

6 INFILE ‘emp1.dat'

7 INTO TABLE tab_samp1

8 APPEND

9 FIELDS TERMINATED BY ','

10 (empno,ename)

もしくはコマンドプロンプトから

有効化

sqlldr USERID=scott/tiger

CONTROL=samp1.ctl DIRECT=TRUE

PARALLEL=true

<制御ファイルサンプル samp2.ctl>

・・・・・・・・・・・・・・・・・・・・・・・・・・

・・・・・・・・・・・・・・・・・・・・・・・・・

“PARALLEL”オプションを

TRUEに設定することで

パラレル化を有効化

並列化させるセッション毎に

それぞれロードする

外部ファイルを準備する

sqlldr USERID=scott/tiger

CONTROL=samp2.ctl DIRECT=TRUE

PARALLEL=true

sqlldr USERID=scott/tiger

CONTROL=samp3.ctl DIRECT=TRUE

PARALLEL=true

(19)

SQL*Loader (

ダイレクト・パス・モード

)の考慮点

ローディング中はテーブル全体がロック

検索処理は可能だが、更新処理は待たされる

データを加工しながらローディングできない

一度、ワーク・テーブルを用意する必要がある

運用が複雑

インデックスのメンテナンス手順

パラレルでロードする場合、

複数の制御ファイルを作成するのが面倒

パラレル・ローディングの指定が面倒

etc.

(20)

従来型パスロード とダイレクトパスロードの

使い分け

従来型パスロードを使用するケース

ロードと並行して表にアクセスする場合

参照整合性制約および列チェック整合性制約のある大き

な表に、比較的少数の行をロードする場合

ダイレクトパスロードを使用するケース

従来型パス・ロードと比較すると非常に高速なので、

短時間でデータをロードしたい場合

(21)

Agenda

はじめに

データロードの種類

SQL*Loaderを使用したデータロード

外部表を使用したデータロード

・SQL Serverからの移行アセスメント

・MySQLからの移行相談

・PostgreSQLからの移行相談

・Accessからの移行アセスメント

・Oracle Database バージョンアップ支援

・Oracle Developer/2000 Webアップグレード相談

・パフォーマンス・クリニック

・Oracle 構成相談

・Oracle Database 高可用性診断

・システム連携アセスメント

・システムセキュリティ診断

・簡易業務診断

・メインフレーム資産活用

無償

技術サービスOracle

Direct

Concierge

(22)

Oracle Database

外部表とは

外部表

外部ファイル

(text,csv etc.)

SELECT * FROM

外部ファイル(CSVファイル等)をデータベース内に

格納されているテーブルのように扱うことが可能

CSVファイルの各列のマッピングをテーブル作成時に定義

2種類のアクセス・ドライバ

ORACLE_LOADER アクセス・ドライバ

ORACLE_DATAPUMP アクセス・ドライバ

ディレクトリ・オブジェクト

DML操作(UPDATE、INSERTまたはDELETE)は実行でき

ず、索引も作成できない

(23)

アクセス・ドライバ:

ORACLE_LOADERとORACLE_DATAPUMP

ORACLE_LOADER

ORACLE_DATAPUMP

アンロード 転送

特徴:

9iから使用可能

ロードのみ可能

データはテキスト・データファイルから

ロード

デフォルトで使用

CSVファイル等のデータを

ロードする場合に利用

特徴:

10gから使用可能

アンロード・ロードが可能

データはダンプ・ファイルからロード

(注:外部表のアンロードで作成されるダンプ・ファイルと

Data pumpで作成されるダンプ・ファイルは異なります)

別のOracle Database内にあるデータ

をロードする場合に利用

外部表 ディレクトリ・オブジェクト 外部ファイル (.txt,.csv) ディレクトリ・オブジェクト 外部表 内部表 .dmp ディレクトリ・オブジェクト 外部表 .dmp

(24)

外部表の作成(ORACLE_LOADER)

1.外部ファイルを準備する

例:emp.dat, emp.csv,emp.txt

2.ディレクトリオブジェクトの作成

SQL> CREATE DIRECTORY load_src as ‘C:¥Documents and

SQL> Settings¥My Documents';

3.ディレクトリオブジェクトの読み込み・書き込み権限を付与

SQL> GRANT READ ON DIRECTORY load_src TO scott;

SQL> GRANT WRITE ON DIRECTORY load_src TO scott;

外部ファイルがある

(25)

外部表の作成(ORACLE_LOADER)

4.外部表の作成

SQL> CREATE TABLE emp_ext

( empno NUMBER

, ename varchar2(10)

:

)

ORGANIZATION EXTERNAL

( DEFAULT DIRECTORY load_src

ACCESS PARAMETERS

( RECORDS DELIMITED BY NEWLINE

FIELDS TERMINATED BY ',')

LOCATION (

‘emp.dat'

)

)

外部表の宣言

ロードするデータファイルの

指定

(26)

外部表の作成(ORACLE_LOADER)

SQL> select empno,ename from emp_ext;

EMPNO ENAME

---7369 SMITH

7499 ALLEN

7521 WARD

7566 JONES

7654 MARTIN

7698 BLAKE

7782 CLARK

7788 SCOTT

7839 KING

7844 TURNER

7876 ADAMS

11行が選択されました。

5.通常の表へのアクセスと同様にSQL文を実行する

(27)

外部表 -アンロード(ORACLE_DATAPUMP)

外部表の機能を利用して、データのアンロードが可能

9i でも利用できた外部表の構文で、データ型にはORACLE_DATAPUMPを

指定

SQLの問い合わせを記述することで、自由にアンロード可能

DPUMP_DIRで指定されたディレクトリ下に「dept.dmp」というダンプファイル

が作成される

SQL> create table dept_external1

organization external (

type oracle_datapump

default directory dpump_dir

location('dept.dmp') )

as select * from dept;

ORACLE_DATAPUMP

を指定

AS SELECT ~ で

(28)

参考:外部表のエラー処理

EMP表

SELECT * FROM EMP;

データ・ファイルと外部表の間で変換エラーが発生すると、

エラーの発生した行は無視される

SQL*Loader同様、エラーログやエラーでロードされなかったデータは

ログファイル、不良ファイルおよび廃棄ファイルに記録される

※ログファイル、不良ファイルおよび廃棄ファイルはディレクトリオブジェクト内に出力される

変換エラー

(29)

外部表を使用したデータロード

INSERT INTO EMP SELECT *

FROM EXT_EMP;

EMP表

(ロード先表)

EXT_EMP表

(外部表)

INSERT INTO … SELECT文やCREATE TABLE … AS SELECT文

を利用して外部表を読み込みながら、ロード先のターゲットとなるテ

ーブルにデータをロードする方法

SQL*Loaderと異なり、SQLでロードするデータの選択が可能

ディレクトリ・オブジェクト

外部ファイル

(text,csv etc.)

(30)

外部表を利用したデータのロード

外部表としてテキスト

データを読み込みながら

データをロード

SQL>CREATE TABLE emp_ext

( empno NUMBER

, ename varchar2(10)

:

)

ORGANIZATION EXTERNAL

( DEFAULT DIRECTORY load_src

ACCESS PARAMETERS

( RECORDS DELIMITED BY NEWLINE

FIELDS TERMINATED BY ',')

LOCATION (

‘emp.dat'

)

)

/

SQL> INSERT /*+ APPEND */ INTO EMP SELECT * FROM EMP_EXT;

1.外部表を作成する

(31)

外部表でのパラレルロード

外部表を利用した場合でもパラレルでのロードが可能

1 CREATE TABLE emp_ext

2 ( empno NUMBER

3 , ename varchar2(10)

4 :

5 )

6

ORGANIZATION EXTERNAL

7 ( DEFAULT DIRECTORY load_src

8

ACCESS PARAMETERS

9

( RECORDS DELIMITED BY NEWLINE

10 FIELDS TERMINATED BY ',')

11 LOCATION (

‘emp.dat'

)

12 )

13

PARALLEL 2

※SQL文のヒント句を使用した並列化も可能

PARALLEL句で

並列度を指定

ロード元のソースデータの文字コードがACIIとUTF-8の場合、

ソースファイルを分割することなく、Oracle側が自動分割して並列に読み込む

Shift_JISやEUC-JPでCSV形式のような可変長データの場合は

並列度と同じ数だけファイルを分割する必要がある

(32)

圧縮ファイルでの外部表

11gR2 新機能

圧縮ファイル形式などのテキストファイル以外のデータも外部表として

ロードが可能

外部表に読み取るデータファイルの前処理(Preprocessor)を

行うプログラムを指定して、実行

解凍とロードを一括して行えるので、ディスクスペースを節約

1 CREATE TABLE sales_external

2 (...)

3 ORGANISZATION EXTERNAL

4 ( TYPE ORACLE_LOADER

5 DEFAULT DIRECTORY data_dir1

6 ACCESS PARAMETERS

7 (RECORDS DELIMITED BY NEWLINE

8

PREPROCESSOR exec_dir:

9 'gunzip.sh'

10

FIELDS TERMINATED BY 11

'|'

12 )

13 LOCATION (...)

14 );

(33)

SQL*LoaderVS外部表

1回あたりのロード時間

※SQL*Loaderのロード時間を1とした場合の 相対処理時間 (実際の処理時間に任意の数を掛けています) ※資料中に掲載されている検証内容は、特定環境における検証結果に ついての報告であり、すべての環境において同様の動作を保証するも のではありませんので、予めご了承ください。 ※約300万レコードロードの結果 0.980

外部表

SQL*Loader

外部表

SQL*Loader

ロード時間は大きな違いはない

0.2 0.4 0.6 0.8 1.0

(34)

SQL*Loaderと外部表

SQL*Loader

外部表

ソース

外部ファイル

外部ファイル/Oracle DB

利用可能な

Version

Version6.X以前~

9i~

10g~(データのアンロード)

実行形態

Client側で実行

(Net経由)

Server側で実行

ファイル

形式

テキスト

(固定長/可変長)

テキスト

(固定長/可変長)

独自(DataPump)

ロードスピード

外部表とSQL*Loaderでは

大差はない

外部表とSQL*Loaderでは

大差はない

データ

クレンジング

データを加工しながらの

ローディングにはワーク・テーブルが必要

直接データを加工しながら

ローディングができる

パラレルロード

設定が面倒

設定が容易

ロード対象

データの選択

ロードするデータの選択は不可

SQLでロードするデータの選択が可能

外部ファイルのロードには外部表を利用したロードが効果的

(35)

まとめ

Oracleでは2種類の外部ファイルのデータロード方法を提供

SQL*Loader

外部表

SQL*Loaderは従来型パスロード とダイレクトパスロード2つのロード方法があり、

用途によって、それぞれを使い分ける

外部表は外部ファイルをデータベース内に格納されている

テーブルのように扱うことができる機能

外部表を利用することでSQL*Loaderと比べ、容易にデータのローディングが可能

(36)

OTN×ダイセミ でスキルアップ!!

※OTN掲示版は、基本的にOracleユーザー有志からの回答となるため100%回答があるとは限りません。

ただ、過去の履歴を見ると、質問の大多数に関してなんらかの回答が書き込まれております。

Oracle Technology Network(OTN)

を御活用下さい。

・一般的な技術問題解決方法などを知りたい!

・セミナ資料など技術コンテンツがほしい!

一般的技術問題解決にはOTN掲示版の

「データベース一般」

をご活用ください

http://otn.oracle.co.jp/forum/index.jspa?categoryID=2

過去のセミナ資料、動画コンテンツはOTNの

「OTNセミナー

オンデマンド コンテンツ」

http://www.oracle.com/technology/global/jp/ondemand/otn-seminar/index.html

※ダイセミ事務局にダイセミ資料を請求頂いても、お受けできない可能性がございますので予めご了承ください。

ダイセミ資料はOTNコンテンツ オン デマンドか、セミナ実施時間内にダウンロード頂くようお願い致します。

(37)

Oracle Direct 新サービスができました

新規Oracle Direct Concierge

(無償支援サービス)

お問い合わせフォーム

http://www.oracle.co.jp/inq_pl/INQUIRY/quest?rid=28

•Webシステム ボトルネック診断サービス

•WebLogic Serverバージョンアップ支援サービス

•Oracle Application Server、その他アプリケーションサーバーからの

(38)

OTNセミナー オンデマンド コンテンツ

ダイセミで実施された技術コンテンツを動画で配信中!!

ダイセミのライブ感はそのままに、お好きな時間で受講頂けます。

※掲載のコンテンツ内容は予告なく変更になる可能性があります。

期間限定での配信コンテンツも含まれております。お早めにダウンロード頂くことをお勧めいたします。

OTN オンデマンド

(39)

Oracle エンジニアのための技術情報サイト

オラクルエンジニア通信

http://blogs.oracle.com/oracle4engineer/

• 技術資料

• ダイセミの過去資料や製品ホワイト

ペーパー、スキルアップ資料などを

多様な方法で検索できます

• キーワード検索、レベル別、カテゴ

リ別、製品・機能別

• コラム

• オラクル製品に関する技術コラムを

毎週お届けします

• 決してニッチではなく、誰もが明日

から使える技術の「あ、そうだった

んだ!」をお届けします

先月はこんな資料が人気でした

 Oracle Database 11gR2 RAC インストレーション・

ガイド ASM 版 Microsoft Windows x86-64

 Oracle Database 11gR2 旧バージョンからのアッ

プグレード

(40)

オラクル クルクルキャンペーン

Enterprise Edition

はここが違う!!

圧倒的な

パフォーマンス

! • データベース

管理がカンタン

!

• データベースを

止めなくていい

! • もちろん

障害対策

も万全! Oracle Databaseの ライセンス価格を大幅に抑えて ご導入いただけます

詳しくはコチラ

http://www.oracle.co.jp/campaign/kurukuru/index.html

あの

Oracle Database Enterprise Edition

が超おトク

!!

お問い合わせフォーム

http://www.oracle.co.jp/inq_pl/INQUIRY/quest?rid=28

多くのお客様でサーバー使用期間とされる 5年間にライセンス期間を限定 • 期間途中で永久ライセンスへ差額移行 • 5年後に新規ライセンスを購入し継続利用 • 5年後に新システムへデータを移行

(41)

http://www.oracle.co.jp/inq_pl/INQUIRY/quest?rid=28

Oracle Direct

検索

あなたにいちばん近いオラクル

Oracle

Direct

まずはお問合せください

Web問い合わせフォーム

フリーダイヤル

専用お問い合わせフォームにてご相談内容を承ります。

※フォームの入力には、Oracle Direct Seminar申込時と同じ ログインが必要となります。 ※こちらから詳細確認のお電話を差し上げる場合がありますので、ご登録さ れている連絡先が最新のものになっているか、ご確認下さい。

0120-155-096

※月曜~金曜 9:00~12:00、13:00~18:00

(祝日および年末年始除く)

システムの検討・構築から運用まで、ITプロジェクト全般の相談窓口としてご支援いたします。

システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。

参照

関連したドキュメント

  If, as argued above, monetary transfers between the water utility and potential customers disconnected are not allowed, then the water utility will be required to satisfy

WAV/AIFF ファイルから BR シリーズのデータへの変換(Import)において、サンプリング周波 数が 44.1kHz 以外の WAV ファイルが選択されました。.

Key words: Conditional monetary risk measures, Conditional monetary utility func- tions, Conditional dual representations, Dynamic monetary risk measures, Dynamic monetary

1-1 睡眠習慣データの基礎集計 ……… p.4-p.9 1-2 学習習慣データの基礎集計 ……… p.10-p.12 1-3 デジタル機器の活用習慣データの基礎集計………

【通常のぞうきんの様子】

データなし データなし データなし データなし

[r]

A carnet is an international, unified Customs document under an international system based on “Customs Conventions on the Temporary Importation of Private Road Vehicles”