バルク・ローダー・プログラムの開発
このトピックでは、IBM® SPSS® Modeler から実行して、テキスト・ファイルのデータをデータベースに読み込むバルク・ローダー・プログラムの開発方法について説明します。 ただし、これは標準のテクニカル サポート契約の範囲外であり、IBM サービス担当員に連絡して支援を受ける必要があることに注意してください。
Python を使用したバルク・ローダー・プログラムの作成
スクリプト test_loader.py を使用して、バッチ ローダー・プログラムの開発を支援します。 詳しくは、バルク・ローダー・プログラムのテストのトピックを参照してください。
バルク・ローダー・プログラムに渡されるオブジェクト
IBM SPSS Modeler は、バルク・ローダー・プログラムに渡される 2 つのファイルを作成します。
- データ・ファイル: 読み込まれるデータ (テキスト形式) が含まれます。
- スキーマ ファイル: 列の名前と種類を説明する XML ファイルで、データ・ファイルをどのように書式設定するかに関する情報が提供されます (フィールド間の区切り文字として使用される文字など)。
また、IBM SPSS Modeler は、バルク・ロード・プログラム起動時に、テーブル名、ユーザー名、パスワード名など他の情報を引数として渡します。
注 : IBM SPSS Modeler に正常に完了したことを通知するために、バルク・ローダー・プログラムはスキーマ ファイルを削除する必要があります。
バルク・ローダー・プログラムに渡される引数
プログラムに渡される引数を以下の表に示します。
| 引数 | 説明 |
|---|---|
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> 要素の属性を示します。
| 属性 | 説明 |
|---|---|
delimiter
|
フィールド区切り文字 (TAB は ¥t として示されます)。 |
commit_every |
バッチ サイズの間隔 (「DB エクスポートの詳細オプション」ダイアログボックスで指定されているとおり) |
date_format
|
日付の表示に使用する形式。 |
time_format
|
時刻の表示に使用する形式。 |
append_existing |
ロードするテーブルにデータが含まれている場合は true、含まれていない場合は false。 |
delete_datafile |
ロードの完了時にバルク・ロード・プログラムでデータ・ファイルを削除する場合は true。 |
| 属性 | 説明 |
|---|---|
name
|
列名。 |
encoded_name |
データ・ファイルと出力と同じエンコードに 2 桁の 16 進数で変換される列の名前。 |
Type
|
列のデータ型。integer、real、char、time、date、
および datetime のいずれか。 |
size
|
char データ型の場合、列の最大幅の文字数。 |