データベース
Java Database Connectivity (JDBC) をサポートするデータベースに保管されている文書をクロールします。 API。
IBM Cloud Pak for Data IBM Software Hub
この情報は、インストール済みデプロイメントにのみ適用されます。
IBM Watson® Discovery は での 認証をサポートしていない。 Cloud Pak for Data Kerberos
クロールされる文書
- データベース内の各行がクロールされ、1 つの文書としてコレクションに追加されます。 列はメタデータとして索引付けされます。
- クローラーは、データベースに保管されている BLOB/BINARY などのコンテンツをクロールして索引付けしようとします。 Discovery でサポートされるファイル・タイプに索引が付けられます。 詳しくは、 サポートされるファイル・タイプ を参照してください。
- ソースが再クロールされると、新しいドキュメントが追加され、更新されたドキュメントは現在のバージョンに修正され、削除されたドキュメントはコレクションのインデックスから削除される。
- すべての Discovery データ・ソース・コネクターは読み取り専用です。 クロール・アカウントに付与されている許可に関係なく、 Discovery は、元のデータ・ソースのコンテンツの書き込み、更新、削除を行うことはありません。
データ・ソース要件
すべてのインストール済みデプロイメントの データ・ソース要件 に加えて、データベース・データ・ソースは以下の要件を満たしている必要があります。
-
Discovery は、以下のデータ・ソース・バージョンをサポートします。
- Data Virtualization On IBM Cloud Pak for Data 1.8.0、 1.8.3 ( Db2 11.5
- IBM Db2: 10.5, 11.1, 11.5
- Microsoft SQL Server: 2012、2014、2016、2017
- Oracle Database: 12c, 18c, 19c
- PostgreSQL: 9.6, 10, 11
Data Virtualization のサポートが IBM Cloud Pak for Data 4.5.x リリースで追加されました。
-
接続先のデータ・ソースに必要なサービス・ライセンスをすべて取得する必要があります。 ライセンスについて詳しくは、データ・ソースのシステム管理者にお問い合わせください。
前提条件ステップ
-
クロールするデータベース表を決定します。 コレクション内の複数のテーブルをクロールすることができ、異なるスキーマやカラムセットを持つテーブルを指定することができます。 以下の情報を知っていなければならない:
- スキーマ名
- テーブル名
Data Virtualization on IBM Cloud Pak for Dataの場合、これらの詳細は IBM Cloud Pak for Data Web クライアントから取得できます。 メインメニュー・アイコンをクリックし、「データ」を展開して、 Data virtualizationを選択します。 ページの先頭で、 *「仮想化データ」*を表示することを選択します。
の仮想化データビューから ビューを表示。 Data virtualization Cloud Pak for Data -
名前が同じでデータ・タイプが異なる列を持つ複数の表をクロールする場合は、注意してください。 コンテンツ・マイニング・プロジェクトでは、名前が同じでデータ・タイプが異なる列が、名前にデータ・タイプ接尾部があるフィールド (
DATA_string
など) に割り当てられます。 他のすべてのプロジェクト・タイプでは、いずれかの表のデータが索引から除外されます。 例えば、DATA
と呼ばれるカラムを持つ2つのテーブルがあり、一方のテーブルのDATA
カラムに日付が、もう一方のテーブルのカラムに文字列が入力されている場合、一方のテーブルのデータはインデックスから除外される。 -
クロールする表にアクセスする権限を持つユーザーのユーザー資格情報を取得します。
-
データベースに接続する前に、データベースの JDBC ドライバー・ライブラリーを取得する必要があります。 データベース・データ・ソースをセットアップするときに、 JDBC ドライバーのクラスパスを指定するように求められます。
-
JDBCを使用して Data Virtualization サービスに接続する前に、 IBM Data Server ドライバー・パッケージをインストールする必要があります。 詳しくは、 Data Virtualization サービスへのアプリケーションの接続を参照してください。
-
Discovery サービスとは異なるクラスターでホストされている Data Virtualization のインスタンスに接続する場合は、外部インフラストラクチャー・ノードからクラスターのマスター・ノードに Data Virtualization のためにルーティングされるトラフィックを転送する必要があります。 詳しくは、 HAProxy 構成ファイルの更新を参照してください。
-
JDBC ドライバー・ライブラリーの JAR ファイルをデータベース・サーバーまたはベンダーの Web サイトからダウンロードします。
各データベースには、以下のファイルが関連付けられています。
- Db2 および Data Virtualization:
db2jcc4.jar
- Oracle:
ojdbc8.jar
- SQL Server:
mssql-jdbc-7.2.2.jre8.jar
- PostgreSQL:
postgresql-42.2.6.jar
- Db2 および Data Virtualization:
-
JARファイルを1つの圧縮ファイルに圧縮する。
JAR ファイルが 1 つしかない JDBC ドライバーがある場合は、このステップをスキップしてください。
-
ドライバーが保管されている場所をメモします。 Discovery がこの JAR ファイルをアップロードできるように、次の手順でこの JAR ファイルまたは圧縮ファイルを保管するディレクトリーを指定する必要があります。
データベース・データ・ソースへの接続
開始する前に、データにエンリッチメントを適用する予定の場合は、コンテンツ・マイニング・プロジェクト・タイプでコレクションを作成します。 別のプロジェクト・タイプを使用していて、エンリッチメントを適用する予定の場合は、ここで停止します。 詳しくは、 データベースからのコンテンツへのエンリッチメントの適用 を参照してください。
Discovery プロジェクトから、以下のステップを実行します:
-
ナビゲーション・ペインから、 「コレクションの管理」 を選択します。
-
新しいコレクションをクリックします。
-
Databaseをクリックし、 Nextをクリックします。
-
コレクションに名前を付けます。
-
データベース内の文書の言語が英語でない場合は、該当する言語を選択します。
サポートされる言語のリストについては、言語サポートを参照してください。
-
オプション: 同期スケジュールを変更します。
詳しくは、 クロール・スケジュール・オプション を参照してください。
-
Enter your credentials セクションに以下のフィールドを入力してください:
- データベース URL
-
データベースサーバーの URL。
以下の表に、データベース URL の例を示します。
データベース URL の例 データベース 構文 例 Data virtualization (同じクラスター) jdbc:db2://{fully-qualified-hostname-of-dv-service}:{jdbc-nonssl-internal-port}/bigsql
jdbc:db2://c-db2u-dv-db2u-engn-svc.myproject.svc.cluster.local:50000/bigsql
Data virtualization (別個のクラスター) jdbc:db2://{cluster-address }: {jdbc-nonssl-external-port} /bigsql jdbc:db2://api.conn.cp.example.com:30269/bigsql Db2 jdbc:db2://{server}:{port}/{database_name}
jdbc:db2://localhost:50000/sample:sslConnection=true;
Oracle jdbc:oracle:thin:@//{host}:{TCPport}/{service_name}
jdbc:oracle:thin:@localhost:1521/sample
SQL Server jdbc:sqlserver://{serverName}[{instanceName}]:{port}[;property=value]
jdbc:sqlserver://localhost:1433;DatabaseName=sample
Postgresql jdbc:postgresql://{host}:{port}/{database}
jdbc:postgresql://localhost/sample
- User
-
選択したデータベースから取得したユーザー名。 このユーザー名を使用してソースをクロールします。 ユーザー名はデータベースごとに異なります。
- パスワード
-
ユーザー名に関連付けられたパスワード。 パスワードはデータベースごとに異なります。
-
Connection settings セクションの以下のフィールドに記入してください:
- JDBC ドライバー・タイプ
-
データベースを選択します。
Db2 がデフォルトで選択されている。 リストにないデータベースタイプからクロールしたい場合は、 OTHERを選択します。 IBM Cloud Pak for Dataで Data Virtualization によって管理されているデータをクロールするには、
Db2
を選択したままにします。 - JDBC ドライバークラス名
-
選択したデータベースに関連付けられている JDBC ドライバー・クラス名。 OTHER を選択しない限り、このフィールドは自動入力されます。
- JDBC ドライバー・クラスパス
-
.jar または.zip ファイル拡張子の JDBC ドライバファイルをアップロードします。 あるいは、以前にアップロードした .jar ファイルまたは .zip ファイルを再利用することもできます。
-
「クロール対象の指定 (Specify what you want to crawl)」 セクションで以下のフィールドに入力し、 「追加」 をクリックします。
- スキーマ名
- クロールしたいスキーマ。
- 表名
- クロールする対象のスキーマ内の表。
「編集」アイコンをクリックして、以下を含む追加の表クロール設定を指定します。
- 主キー
- ターゲット・データベース・テーブルの主キー。 ターゲット・データベース・テーブルにプライマリ・キーが設定されていない場合は、このフィールドにキーを指定する必要があります。 JDBC データベース・クローラーは、固有性を保持するために、この主キーの値をクロールされる各行の URL に付加します。 主キーが複合キーである場合は、コンマを使用してキー名を連結します (例:
key1,key2
)。 指定しない場合、プロジェクトのデフォルトは表の主キー・フィールドになります。 ターゲット・データベース表に主キーが構成されている場合は、そのキーが自動的に検出されます。 - 行フィルター
- オプションです。
SQL WHERE
節を指定して、クロールするテーブル行を指定する。WHERE
ステートメント内のSELECT
節の条件にすることができるブール式を指定する必要があります。 構文または列の名前にエラーがある場合、表はクロールから除外され、文書は索引付けされません。 - 抽出するデータを含む列
- クロールするデータが含まれている列の名前。 列を指定しない場合は、テキストを含む列または単一のラージ・オブジェクトを含む列がクロール対象として選択されます。
- データの MIME タイプ
- オプションです。 MIME タイプが指定されていない場合は、検出されます。
「テーブル・クロール設定」ダイアログで指定した値は、スキーマ名およびテーブル名とともに表示されませんが、値はデータベース接続に適用されます。
4.6.5 リリースでは、 「抽出するデータの列 (Column with data to extract)」 フィールドと 「データの MIME タイプ (MIME type of data)」 フィールドが追加されました。
-
クローラーが文書内のイメージからテキストを抽出するようにするには、 *「その他の処理設定 (More processing settings)」*を展開し、 「光学式文字認識 (OCR) の適用 (Apply optical character recognition (OCR))」 を
On
に設定します。OCR が有効になっていて、文書に画像が含まれている場合、処理にかかる時間が長くなります。 詳しくは、 光学式文字認識 を参照してください。
-
「完了 (Finish)」 をクリックします。
コレクションは迅速に作成されます。 データはコレクションに追加されるため、処理にかかる時間が長くなります。
進行状況を確認するには、「アクティビティー」ページに移動します。 ナビゲーション・ペインで、 「コレクションの管理」 をクリックし、コレクションをクリックして開きます。
Linux での Windows 認証の使用
Microsoft の JDBC ドライバーは、 Linux上の Windows 認証をサポートしていません。 Microsoft Windows 認証を使用して Linux上の SQL Server にアクセスする場合は、 Sourceforgeにある jTDS というサード・パーティーの JDBC ドライバーを使用できます。 構成時に以下の値を指定します。
- データベース URL:
jdbc:jtds:sqlserver://<host>:<port>;databaseName=<database>;domain=<domain>;useNTLMv2=true;
- JDBC ドライバータイプ:
OTHER
- JDBC ドライバークラス名:
net.sourceforge.jtds.jdbc.Driver
データベースのコンテンツへのエンリッチメントの適用
データベースをデータ・ソースとして使用し、データベースから索引付けされたネストされたフィールドにエンリッチメントを適用する場合は、コンテンツ・マイニング・プロジェクト・タイプを使用する必要があります。
「文書の取得 (Document Retrieval)」プロジェクト・タイプを使用して検索アプリケーションを作成することを目標としている場合は、まずコンテンツ・マイニング・プロジェクト・タイプを作成します。 コンテンツ・マイニング・プロジェクトから、データベースに接続してデータを強化できます。 その後、「文書の取得 (Document Retrieval)」プロジェクトから、エンリッチされたコレクションを再利用できます。
文書の取得プロジェクトで使用するためにデータベース・コンテンツをエンリッチするには、以下のステップを実行します。
-
コンテンツマイニングプロジェクトを作成する。
詳しくは、 プロジェクトの作成 を参照してください。
-
データベースのデータソースに接続する。
詳しくは、 データ・ソースの構成: データベース を参照してください。
-
エンリッチメントを適用します。
詳しくは、以下のトピックを参照してください。
-
文書の取得プロジェクトを作成します。
詳しくは、 プロジェクトの作成 を参照してください。
コレクションの選択を求めるプロンプトが出されたら、 「既存のコレクションのデータを再使用する (Reuse data from an existing collection)」 を選択します。 必要に応じて、スクロールしてこのオプションを表示します。
-
コンテンツ・マイニング・プロジェクトを使用して作成およびエンリッチしたコレクションを選択し、 「終了」 をクリックします。