![]() 前へ |
![]() 次へ |
SQLを使用するCMIを定義して、DB2 UDBのSQLベース・データ・ディクショナリからメタデータを取得し、DB2プラットフォームから表をインポートできます。このようなメカニズムを実装すると、SQLベースのデータ・ディクショナリを使用する任意のデータベースからメタデータをインポートできます。
CMIメカニズムを活用するには、プラットフォームについて「CMI DEFINITION」を定義する必要があります。「例: IBM DB2 UDBのプラットフォーム定義」には、DB2 UDBのプラットフォーム定義がリストされています。これには基本的な定義のみがリストされています。プラットフォームに追加できるデータ型は含まれていません。
IBM DB2 UDBのプラットフォーム定義
set platformname IBM_DB2_UDB
set platformdisplay "IBM DB2 CMI Api"
puts "Creating Platform $platformdisplay"
OMBCREATE PLATFORM '$platformname' SET PROPERTIES (BUSINESS_NAME) VALUES ('$platformdisplay')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (DRIVER_CLASS,URI_TEMPLATE) VALUES ('com.ibm.db2.jcc.DB2Driver','jdbc:db2://Host:Port/Database Name')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (LOCAL_OBJECT_MASK) VALUES ('%SCHEMA.%OBJECT')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (DATE_MASK) VALUES ('TIMESTAMP')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (DDLNULL) VALUES ('null')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (NUMERIC_MASK) VALUES ('NUMERIC(%L,%P)')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (VARCHAR_MASK) VALUES ('VARCHAR(%L)')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (LOCAL_OBJECT_MASK) VALUES ('%SCHEMA.%OBJECT')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (DEFAULT_MAX_NAME_LEN) VALUES ('30')
OMBALTER PLATFORM '$platformname' SET PROPERTIES (REMOTE_OBJECT_MASK) VALUES ('%SCHEMA.%OBJECT')
次に、CMI定義をプラットフォームに追加します。
OMBCREATE CMI_DEFINITION 'DB2_IMPORT_SQL' USING DEFINITION_FILE 'c:\\platformdef2_miv.xml'
OMBALTER CMI_DEFINITION 'DB2_IMPORT_SQL' SET PROPERTIES (MIV_TYPE) VALUES ('Databases')
OMBALTER PLATFORM '$platformname' SET REF CMI_DEFINITION 'DB2_IMPORT_SQL'
platformdef2_miv.xmlファイルには、SQLを使用してメタデータをインポートするためのカスタム・インポート定義が含まれています。「例: CMI定義ファイル」には、CMI定義ファイルがリストされています。
CMI定義ファイル
<?xml version="1.0"?>
<miv>
<miv_tables type="SQLStatement" default="true">
SELECT rtrim(tabname) table_name
FROM syscat.tables
WHERE tabschema = <Parameter name="owner"/>
AND type = 'T'
AND status = 'N'
ORDER BY table_name
</miv_tables>
<miv_columns type="SQLStatement" default="true">
SELECT rtrim(col.tabname) entity_name,
col.colno position,
rtrim(col.colname),
col.typename,
col.length,
col.length,
col.scale,
col.remarks,
col.nulls,
'' datatypeowner,
col.default,
CHAR(col.codepage) charset,
1 bytes_per_char,
'N' use_char_semantics
FROM syscat.columns col
WHERE col.tabschema = <Parameter name="owner"/>
</miv_columns>
<miv_capabilities type="ResultSet">
<table_supported>true</table_supported>
<view_supported>false</view_supported>
<sequence_supported>false</sequence_supported>
<table_name_filter_supported>true</table_name_filter_supported>
<view_name_filter_supported>false</view_name_filter_supported>
<sequence_name_filter_supported>false</sequence_name_filter_supported>
<business_area_supported>false</business_area_supported>
<business_area_table_supported>false</business_area_table_supported>
<business_area_view_supported>false</business_area_view_supported>
<business_area_sequence_supported>false</business_area_sequence_supported>
<application_owner_supported>true</application_owner_supported>
<table_fklevel_supported>false</table_fklevel_supported>
<reimport_supported>true</reimport_supported>
<data_object_at_leaf_levels>false</data_object_at_leaf_levels>
<multiple_tree_supported>false</multiple_tree_supported>
</miv_capabilities>
</miv>
定義ファイルには、表と列を取得するための問合せが含まれています。このMIVファイルは、XMLスキーマ定義(XSD)ファイルに定義されている要素を使用して作成します。
作成したプラットフォームは、プロジェクト・ナビゲータの「データベース」ノードの下に表示されます。これでDB2UDBデータベースに接続し、メタデータをインポートできます。DB2に接続するには、適切なドライバ・ファイルが必要です。必要なドライバ・ファイルの詳細は、「DB2のJDBC接続ドライバ」を参照してください。
同様に、SQLベースのデータ・ディクショナリを使用する任意のデータベースの新規プラットフォームを作成し、SQLベースのCMIメカニズムを作成してデータベースからメタデータをインポートできます。