前へ |
次へ |
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メカニズムを作成してデータベースからメタデータをインポートできます。