ORACLEMASTER 備忘録8(9/10)
表へのデータのロード
Oracleシステムでは、“SQL*Loader”と呼ばれるユーティリティを使用して、外部ファイルに保存されている大量のデータをバッチ処理で表にロード(取り込む)ことができる。SQL*LoaderはSQL Developerから呼び出すこともできる。
SQL*Loaderによるデータロード
SQL*Loaderのファイル
データをロードする際はSQL*Loaderの“データファイル”と“制御ファイル”を使用する。データファイルとは、ロードするデータが記述されているファイルで、“.csv”ファイルまたは“.xls”ファイルなどであらかじめ作成しておく。例えば次のようなファイル。
・SQL*Loaderのデータファイル(例)
10, ‘SALES’, ‘東京’
20, ‘RESEACH’, ‘名古屋’
30, ‘FINANCE’, ‘大阪’
制御ファイル(.ctl)とは、データファイルからデータを読み込み方法やデータの場所、データの挿入先の表名が記述されたファイル。制御ファイルは事前に作成しておくことができるし、SQL Developerの中で自動生成することもできる。
ここでは、ロードのウィザードの中で制御ファイルの自動生成を選択し、データのロードを行う方法を理解しておく。また、SQL*Loaderのデータファイルと制御ファイルは、“データベースのデータファイルと制御ファイルとは異なる”という点も覚えておく。
SQL*Loaderの特徴
SQL*Loaderには、次の特徴がある。
・“sqldrコマンド”で起動するコマンドライン・インターフェイスである
・外部ファイルからデータベースへデータを“バルクロード”(大量データの一括ロード)する
・区切り文字、固定レコード、可変レコードおよびストリームなど、多数の入力形式をサポートしている
・同時に複数の表をロードできる
・強力なデータのフィルター機能がある
データのロード方法
SQL*Loaderは、必要に応じて、“従来型パス”、“ダイレクトパス”および“外部表”の3つの異なるデータのロード方法を使用する。ここでは従来型パスとダイレクトパスの違いについて抑えておく。
・データのロード方法
従来型パス:
デフォルトのロード方法。SQLの“INSERT分”が生成されて、データ表に挿入される。この方法では、その他のすべてのプロセスと均等にバッファ・リソースの競合が発生するため、時間がかかる可能性がある。