部署数据库连接器

您可以使用 Cloud Search 数据库连接器设置 Google Cloud Search,使其能够从贵组织的数据库中查找所需内容并将其编入索引。

重要注意事项

只要 Cloud Search 数据库连接器可以访问互联网和数据库,您就可以在几乎任何能运行 Java 应用的环境中安装和运行该连接器。

系统要求

系统要求
操作系统 Windows 或 Linux
SQL 数据库 任何具有 JDBC 4.0 或更高版本兼容驱动程序的 SQL 数据库,包括:
  • MS SQL Server(2008、2012、2014、2016)
  • Oracle(11g、12c)
  • Google Cloud SQL
  • MySQL
软件 JDBC 驱动程序(需要单独下载和安装)

部署连接器

以下步骤介绍了如何安装连接器并将其配置为对数据库编制索引,以及如何向 Cloud Search 用户返回结果。

前提条件

在部署连接器之前,请收集以下信息:

第 1 步:下载并构建数据库连接器软件

  1. 从 GitHub 克隆连接器代码库。

    $ git clone https://github.com/google-cloudsearch/database-connector.git
    $ cd database-connector

  2. 查看所选版本:

    $ git checkout tags/v1-0.0.3

  3. 构建连接器:

    $ mvn package
    如需跳过测试,请使用 mvn package -DskipTests

  4. 将连接器 zip 文件解压缩到安装目录:

    $ cp target/google-cloudsearch-database-connector-v1-0.0.3.zip installation-dir
    $ cd installation-dir
    $ unzip google-cloudsearch-database-connector-v1-0.0.3.zip
    $ cd google-cloudsearch-database-connector-v1-0.0.3

第 2 步:配置数据库连接器

  1. 创建一个名为 connector-config.properties(默认名称)的文本文件。Google 建议使用 .properties.config 扩展程序。将其保存在与连接器相同的目录中。

  2. 以键值对的形式添加参数。该文件必须指定数据源访问权限、数据库访问权限、完整遍历 SQL 语句、内容字段标题和列定义。

    # Data source access
    api.sourceId=1234567890abcdef
    api.identitySourceId=0987654321lmnopq
    api.serviceAccountPrivateKeyFile=./PrivateKey.json
    
    # Database access
    db.url=jdbc:mysql://localhost:3306/mysql_test
    db.user=root
    db.password=passw0rd
    
    # Full traversal SQL statement
    db.allRecordsSql=select customer_id, first_name, last_name, phone from address_book
    
    # Column definitions and URL format
    db.allColumns=customer_id, first_name, last_name, phone
    db.uniqueKeyColumns=customer_id
    url.columns=customer_id
    
    # Content field
    contentTemplate.db.title=customer_id
    
    # Optional: ACLs
    defaultAcl.mode=fallback
    defaultAcl.public=true
    
    # Optional: traversal schedule
    schedule.traversalIntervalSecs=36000
    schedule.performTraversalOnStart=true
    

    如需了解特定于数据库的参数,请参阅配置参数参考。如需了解常见参数,请参阅 Google 提供的连接器参数

第 3 步:运行数据库连接器

从命令行运行连接器:

java
   -cp "google-cloudsearch-database-connector-v1-0.0.3.jar:mysql-connector-java-5.1.41-bin.jar"
   com.google.enterprise.cloudsearch.database.DatabaseFullTraversalConnector
   [-Dconfig=mysql.config]

连接器会报告配置和初始化错误。其他错误(例如无效的 SQL 语法)会在连接器首次尝试访问数据库时显示。

配置参数参考

本部分列出了数据库连接器配置文件中使用的参数。

数据源访问参数

设置 参数
数据源 ID api.sourceId = source-ID

必需。Cloud Search 源 ID。

服务账号 api.serviceAccountPrivateKeyFile = path

必需。服务账号密钥文件的路径。

数据库访问参数

设置 参数
数据库网址 db.url = database-URL

必需。完整路径,例如:jdbc:mysql://127.0.0.1/dbname

凭证 db.user = username
db.password = password

必需。必须对相关记录拥有读取权限。

遍历 SQL 查询参数

连接器使用 SQL SELECT 查询来遍历记录。

  • 完全遍历:读取每个已配置的记录。初始索引和定期重新索引所必需的。
  • 增量遍历:仅读取新修改的记录。需要数据库中的时间戳字段。
设置 参数
完全遍历查询 db.allRecordsSql = SELECT columns FROM table

必需。包含用于内容、ID 和 ACL 的所有列。

增量遍历查询 db.incrementalUpdateSql = SELECT columns FROM table WHERE update_time > ?

对于增量时间表是必需的。“?”是必需的时间戳占位符。

列定义参数

设置 参数
所有列 db.allColumns = column-1, column-2, ...

必需。列出 SQL 查询中引用的所有列。

唯一键列 db.uniqueKeyColumns = column-1

必需。定义每条记录的唯一 ID。

“网址链接”列 url.columns = column-1

必需。指定用于可点击搜索结果的列。

内容字段

设置 参数
标题列 contentTemplate.db.title = column-name

必需。搜索索引编制的最高优先级。

优先级规则 contentTemplate.db.quality.high = column-1

将列指定为高、中或低质量。