バルク・ローダー・プログラムの開発

このトピックでは、IBM® SPSS® Modeler から実行して、テキスト・ファイルのデータをデータベースに読み込むバルク・ローダー・プログラムの開発方法について説明します。 ただし、これは標準のテクニカル サポート契約の範囲外であり、IBM サービス担当員に連絡して支援を受ける必要があることに注意してください。

Python を使用したバルク・ローダー・プログラムの作成

デフォルトでは、IBM SPSS Modeler は、データベースのタイプに基づいてデフォルトのバルク・ローダー・プログラムを検索します。 表 1を参照してください。

スクリプト test_loader.py を使用して、バッチ ローダー・プログラムの開発を支援します。 詳しくは、バルク・ローダー・プログラムのテストのトピックを参照してください。

バルク・ローダー・プログラムに渡されるオブジェクト

IBM SPSS Modeler は、バルク・ローダー・プログラムに渡される 2 つのファイルを作成します。

  • データ・ファイル: 読み込まれるデータ (テキスト形式) が含まれます。
  • スキーマ ファイル: 列の名前と種類を説明する XML ファイルで、データ・ファイルをどのように書式設定するかに関する情報が提供されます (フィールド間の区切り文字として使用される文字など)。

また、IBM SPSS Modeler は、バルク・ロード・プログラム起動時に、テーブル名、ユーザー名、パスワード名など他の情報を引数として渡します。

: IBM SPSS Modeler に正常に完了したことを通知するために、バルク・ローダー・プログラムはスキーマ ファイルを削除する必要があります。

バルク・ローダー・プログラムに渡される引数

プログラムに渡される引数を以下の表に示します。

表 1. バルク・ローダーに渡される引数
引数 説明
schemafile スキーマ ファイルのパス。
data file データ・ファイルのパス。
servername DBMS サーバーの名前。空白の場合あり。
databasename DBMS サーバー内のデータベースの名前。空白の場合あり。
username データベースにログインするユーザー名。
password データベースにログインするパスワード。
tablename 読み込むテーブルの名前。
ownername テーブル所有者の名前 (スキーマ名)。
logfilename ログファイルの名前 (空白の場合、ログ・ファイルは作成されません)。
rowcount データ・セット内の行数。

「DB エクスポートの詳細オプション」ダイアログボックスの 「ローダーの付加オプション」 フィールドで指定されたオプションは、これらの標準引数の後でバルク・ローダー・プログラムに渡されます。

データ・ファイルの形式

データはテキスト形式でデータ・ファイルに書き込まれ、各フィールドは「DB エクスポートの詳細オプション」ダイアログボックスで指定された区切り文字で区切られます。以下に、タブ区切りのデータ・ファイルがどのように表示されるかの例を示します。

48  F  HIGH    NORMAL  0.692623  0.055369  drugA
15  M  NORMAL  HIGH    0.678247  0.040851  drugY
37  M  HIGH    NORMAL  0.538192  0.069780  drugA
35  F  HIGH    HIGH    0.635680  0.068481  drugA

ファイルは、IBM SPSS Modeler Server で使用されるローカル エンコードで作成されます (IBM SPSS Modeler Server に接続していない場合は IBM SPSS Modeler)。いくつかの形式は、IBM SPSS Modeler ストリーム設定で制御されます。

スキーマ ファイルの形式

スキーマ ファイルは、データ・ファイルを記述する XML ファイルです。以下に、先行するデータ・ファイルに伴う例を示します。

<?xml version="1.0" encoding="UTF-8"?>
<DBSCHEMA version="1.0">
	<table delimiter="¥t" commit_every="10000" date_format="YYYY-MM-DD" time_format="HH:MM:SS" 
append_existing="false" delete_datafile="false">
		<column name="Age" encoded_name="416765" type="integer"/>
		<column name="Sex" encoded_name="536578" type="char" size="1"/>
		<column name="BP" encoded_name="4250" type="char" size="6"/>
		<column name="Cholesterol" encoded_name="43686F6C65737465726F6C" type="char" size="6"/>
		<column name="Na" encoded_name="4E61" type="real"/>
		<column name="K" encoded_name="4B" type="real"/>
		<column name="Drug" encoded_name="44727567" type="char" size="5"/>
	</table>
</DBSCHEMA>

以下の 2 つの表に、スキーマ・ファイルの <table> 要素と <column> 要素の属性を示します。

表 2. <table> 要素の属性
属性 説明
delimiter フィールド区切り文字 (TAB は ¥t として示されます)。
commit_every バッチ サイズの間隔 (「DB エクスポートの詳細オプション」ダイアログボックスで指定されているとおり)
date_format 日付の表示に使用する形式。
time_format 時刻の表示に使用する形式。
append_existing ロードするテーブルにデータが含まれている場合は true、含まれていない場合は false
delete_datafile ロードの完了時にバルク・ロード・プログラムでデータ・ファイルを削除する場合は true
表 3. <column> 要素の属性
属性 説明
name 列名。
encoded_name データ・ファイルと出力と同じエンコードに 2 桁の 16 進数で変換される列の名前。
Type 列のデータ型。integerrealchartimedate、 および datetime のいずれか。
size char データ型の場合、列の最大幅の文字数。