資料庫

搜索儲存在支援 Java 資料庫連線功能 (JDBC) 的資料庫中的文件 API。

IBM Cloud Pak for Data IBM Software Hub

此資訊僅適用於已安裝的部署。

IBM Watson® Discovery Cloud Pak for Data 上不支援 身份驗證。Kerberos

搜索哪些文件

  • 系統會搜索資料庫中的每一列,並將其作為一個文件新增至集合。 直欄會編製索引作為 meta 資料。
  • 搜索器會嘗試搜索及檢索儲存在資料庫中的內容,例如 BLOB/BINARY。 Discovery 支援的檔案類型已編製索引。 如需相關資訊,請參閱 支援的檔案類型
  • 當重新抓取來源時,會新增文件,更新的文件會修改為目前的版本,而刪除的文件會從集合的索引中刪除。
  • 所有 Discovery 資料來源連接器都是唯讀的。 不論授與搜索帳戶的許可權為何,Discovery 絕不會寫入、更新或刪除原始資料來源中的任何內容。

資料來源需求

除了所有已安裝部署的 資料來源需求 之外,資料庫資料來源還必須符合下列需求:

  • Discovery 支援下列資料來源版本:

    • IBM Cloud Pak for Data 1.8.0 1.8.3 上使用 Db2 11.5 的 Data Virtualization
    • 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

    IBM Cloud Pak for Data 4.5.x 版本已新增對 Data Virtualization 的支援

  • 您必須針對您要連接的資料來源取得任何必要的服務授權。 如需授權的相關資訊,請聯絡資料來源的系統管理者。

必要步驟

  • 決定您要搜索的資料庫表格。 您可以在一個集合中抓取多個資料表,也可以指定具有不同模式或列集的資料表。 您必須知道下列資訊:

    • 綱目名稱
    • 表格名稱

    對於 IBM Cloud Pak for Data上的 Data Virtualization,您可以從 IBM Cloud Pak for Data Web 用戶端取得這些詳細資料。 按一下主功能表圖示,展開「資料」,然後選取 Data virtualization。 在頁面開始時,選擇顯示 虛擬化資料

    顯示Cloud Pak for Data中的Data virtualization視圖
    Cloud Pak for Data中的虛擬化資料視圖

  • 如果您計劃搜索具有相同名稱但不同資料類型之直欄的多個表格,請小心。 在「內容採礦」專案中,具有相同名稱但不同資料類型的直欄會指派給名稱中具有資料類型字尾的欄位,例如 DATA_string。 在所有其他專案類型中,其中一個表格中的資料會從索引中排除。 例如,如果您有兩個資料表的欄位都稱為 DATA,其中一個資料表中的 DATA 欄位是以日期填入,而另一個資料表中的欄位是以字串填入,則其中一個資料表中的資料會被排除在索引之外。

  • 取得有權存取您要搜索之表格的使用者的使用者認證。

  • 您必須先取得資料庫的 JDBC 驅動程式庫,才能連接至資料庫。 當您設定資料庫資料來源時,會要求您指定 JDBC 驅動程式類別路徑。

  • 您必須先安裝 IBM Data Server Driver 套件,才能使用 JDBC連接至 Data Virtualization 服務。 如需相關資訊,請參閱 將應用程式連接至 Data Virtualization 服務

  • 如果您想要連接至與 Discovery 服務在不同叢集裡管理的 Data Virtualization 實例,則必須將針對 Data Virtualization 遞送的資料流量從外部基礎架構節點轉遞至叢集的主要節點。 如需相關資訊,請參閱 更新 HAProxy 配置檔

  1. 從資料庫伺服器或供應商網站下載 JDBC 驅動程式庫的 JAR 檔。

    下列檔案與每一個資料庫相關聯:

    • Db2 及 Data Virtualization: db2jcc4.jar
    • Oracle: ojdbc8.jar
    • SQL Server: mssql-jdbc-7.2.2.jre8.jar
    • PostgreSQL: postgresql-42.2.6.jar
  2. 將 JAR 檔案壓縮成單一的壓縮檔案。

    如果您的 JDBC 驅動程式只有一個 JAR 檔,請跳過此步驟。

  3. 請記下驅動程式的儲存位置。 您必須在下一個程序中指定儲存此 JAR 或壓縮檔的目錄,以便 Discovery 可以上傳它。

連接至資料庫資料來源

開始之前,如果您計劃將強化套用至資料,請在「內容採礦」專案類型中建立集合。 如果您使用不同的專案類型並計劃套用強化,請在這裡停止。 如需相關資訊,請參閱 將強化套用至資料庫中的內容

從 Discovery 專案中,完成下列步驟:

  1. 從導覽窗格中,選擇 管理集合

  2. 按一下新增收藏集

  3. 按一下資料庫,然後按一下下一步

  4. 命名集合。

  5. 如果資料庫中文件的語言不是英文,請選取適當的語言。

    如需受支援語言的清單,請參閱語言支援

  6. 選用: 變更同步化排程。

    如需相關資訊,請參閱 搜索排程選項

  7. 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
    使用者

    您從所選的資料庫取得的使用者名稱。 您可使用此使用者名稱來搜索來源。 使用者名稱因資料庫不同而異。

    密碼

    與您的使用者名稱相關聯的密碼。 密碼因資料庫不同而異。

  8. 完成 Connection settings(連線設定 )部分中的下列欄位:

    JDBC 驅動程式類型

    選擇資料庫。

    Db2 預設選取。 如果您要從未列出的資料庫類型抓取,請選擇「其他」。 若要在 IBM Cloud Pak for Data上搜索由 Data Virtualization 管理的資料,請保持選取 Db2

    JDBC 驅動程式類別名稱

    與您選取的資料庫相關聯的 JDBC 驅動程式類別名稱。 除非您選取 其他,否則會自動填入此欄位。

    JDBC 驅動程式類別路徑

    上傳 JDBC 驅動程式檔案,其副檔名可以是.jar 或.zip。 或者,您可以重複使用先前上傳的 .jar 或 .zip 檔。

  9. 完成 指定您要搜索的項目 區段中的下列欄位,然後按一下 新增:

    綱目名稱
    您要抓取的模式。
    表格名稱
    綱目內您要搜索的表格。

    按一下編輯圖示以指定更多表格搜索設定,包括:

    主要索引鍵
    目標資料庫表的主索引鍵。 如果在目標資料庫表中沒有設定主索引鍵,則必須在此欄位中指定索引鍵。 JDBC 資料庫搜索器將此主要索引鍵值附加到每個已搜索行的 URL,以保持其唯一性。 當主要索引鍵為組合鍵時,使用逗點來連接索引鍵名稱,例如 key1,key2。 如果未指定,專案將預設為該表格的主要索引鍵欄位。 如果目標資料庫表格中已配置主要索引鍵,則會自動偵測此索引鍵。
    列過濾器
    選用。 指定 SQL WHERE 子句來指定要抓取的資料表行。 您必須在 WHERE 陳述式中指定可以是 SELECT 子句條件的布林表示式。 如果語法或直欄名稱有錯誤,就會從搜索中排除該表格,而且不會對任何文件編製索引。
    含有要擷取之資料的直欄
    含有您要搜索之資料的直欄名稱。 如果您未指定直欄,則會選擇搜索具有文字或具有單一大型物件的直欄。
    MIME 類型的資料
    選用。 如果未指定,則會偵測 MIME 類型。

    您在表格搜索設定對話框中指定的值不會隨綱目及表格名稱一起顯示,但這些值會套用至資料庫連線。

    在 4.6.5 版中新增了 含有要擷取之資料的直欄MIME 類型的資料 欄位。

  10. 如果您想要搜索器從文件中的影像擷取文字,請展開 其他處理設定,並將 套用光學字元辨識 (OCR) 設為 On

    當啟用 OCR 且您的文件包含影像時,處理需要較長的時間。 如需相關資訊,請參閱 光學字元辨識

  11. 按一下完成

會快速建立集合。 將資料新增至集合時,需要花費更多時間來處理資料。

如果您要檢查進度,請跳至「活動」頁面。 從導覽窗格中,按一下 管理集合,然後按一下以開啟集合。

在 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

將強化套用至資料庫中的內容

如果您使用資料庫作為資料來源,並且想要將強化套用至從資料庫檢索的巢狀欄位,則必須使用「內容採礦」專案類型。

如果您的目標是使用「文件擷取」專案類型來建立搜尋應用程式,請先建立「內容採礦」專案類型。 從「內容採礦」專案中,您可以連接至資料庫並強化資料。 然後,您可以重複使用「文件擷取」專案中的強化集合。

若要強化資料庫內容以在「文件擷取」專案中使用,請完成下列步驟:

  1. 建立內容挖掘專案。

    如需相關資訊,請參閱 建立專案

  2. 連接至資料庫資料來源。

    如需相關資訊,請參閱 配置資料來源: 資料庫

  3. 套用強化。

    如需相關資訊,請參閱下列主題:

  4. 建立「文件擷取」專案。

    如需相關資訊,請參閱 建立專案

    當系統提示您選擇集合時,請選擇 重複使用現有集合中的資料。 必要的話,請捲動以查看此選項。

  5. 選取您使用「內容採礦」專案建立並強化的集合,然後按一下 完成