Implementa un conector de bases de datos

Puedes configurar Google Cloud Search para que descubra e indexe datos de las bases de datos de tu organización con el conector de bases de datos de Cloud Search.

Consideraciones importantes

Puedes instalar y ejecutar el conector de bases de datos de Cloud Search en casi cualquier entorno en el que se puedan ejecutar las apps de Java, siempre que el conector tenga acceso tanto a Internet como a la base de datos.

Requisitos del sistema

Requisitos del sistema
Sistema operativo Windows o Linux
Base de datos SQL Cualquier base de datos SQL con un controlador compatible con JDBC 4.0 o posterior, incluidas las siguientes:
  • MS SQL Server (2008, 2012, 2014, 2016)
  • Oracle (11g, 12c)
  • Google Cloud SQL
  • MySQL
Software Controlador JDBC (se descarga y se instala por separado)

Implementa el conector

En estos pasos, se describe cómo instalar el conector y configurarlo para indexar tus bases de datos y devolver resultados a los usuarios de Cloud Search.

Requisitos previos

Antes de implementar el conector, recopila la siguiente información:

Paso 1: Descarga y compila el software del conector de bases de datos

  1. Clona el repositorio del conector desde GitHub.

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

  2. Consulta la versión seleccionada:

    $ git checkout tags/v1-0.0.3

  3. Compila el conector:

    $ mvn package
    Para omitir pruebas, usa mvn package -DskipTests.

  4. Extrae el archivo ZIP del conector en el directorio de instalación:

    $ 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

Paso 2: Configura el conector de bases de datos

  1. Crea un archivo de texto llamado connector-config.properties (el valor predeterminado). Google recomienda la extensión .properties o .config. Mantén el archivo en el mismo directorio que el conector.

  2. Agrega parámetros como pares clave-valor. El archivo debe especificar el acceso a la fuente de datos, el acceso a la base de datos, una instrucción SQL de recorrido completa, un título de campo de contenido y definiciones de columna.

    # 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
    

    Para obtener información sobre los parámetros específicos de la base de datos, consulta la referencia de los parámetros de configuración. Para obtener información sobre los parámetros comunes, consulta Parámetros de conectores que proporciona Google.

Paso 3: Ejecuta el conector de bases de datos

Ejecuta el conector desde la línea de comandos:

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]

El conector informa errores de configuración y de inicialización. Otros errores, como la sintaxis de SQL no válida, aparecen cuando el conector intenta acceder a la base de datos por primera vez.

Referencia de los parámetros de configuración

En esta sección, se enumeran los parámetros que se usan en el archivo de configuración del conector de base de datos.

Parámetros de acceso a la fuente de datos

Configuración Parámetro
ID de la fuente de datos api.sourceId = source-ID

Obligatorio. Es el ID de la fuente de Cloud Search.

Cuenta de servicio api.serviceAccountPrivateKeyFile = path

Obligatorio. Es la ruta de acceso al archivo de claves de la cuenta de servicio.

Parámetros de acceso a la base de datos

Configuración Parámetro
URL de la base de datos db.url = database-URL

Obligatorio. La ruta de acceso completa, p.ej., jdbc:mysql://127.0.0.1/dbname.

Credenciales db.user = username
db.password = password

Obligatorio. El acceso de lectura es necesario para los registros pertinentes.

Parámetros de búsqueda de SQL de recorrido

El conector usa consultas SELECT de SQL para recorrer los registros.

  • Recorrido completo: Lee cada registro configurado. Se requiere para la indexación inicial y la reindexación periódica.
  • Recorrido incremental: Lee solo los registros modificados recientemente. Requiere campos de fecha y hora en la base de datos.
Configuración Parámetro
Consulta de recorrido completo db.allRecordsSql = SELECT columns FROM table

Obligatorio. Incluye todas las columnas que se usan para el contenido, los IDs y las LCA.

Consulta de recorrido incremental db.incrementalUpdateSql = SELECT columns FROM table WHERE update_time > ?

Es obligatorio para los programas incrementales. El signo de interrogación “?” es un marcador de posición obligatorio de la marca de tiempo.

Parámetros de definición de columna

Configuración Parámetro
Todas las columnas db.allColumns = column-1, column-2, ...

Obligatorio. Enumera todas las columnas a las que se hace referencia en las consultas de SQL.

Columnas de clave única db.uniqueKeyColumns = column-1

Obligatorio. Define el ID único para cada registro.

Columna de vínculo de URL url.columns = column-1

Obligatorio. Especifica la columna que se usa para los resultados de la búsqueda en los que se puede hacer clic.

Campos de contenido

Configuración Parámetro
Columna de título contentTemplate.db.title = column-name

Obligatorio. Es la prioridad más alta para la indexación de la búsqueda.

Priorización contentTemplate.db.quality.high = column-1

Designa columnas como de calidad alta, media o baja.