Implementa un conector de bases de datos

Puedes configurar Google Cloud Search para descubrir e indexar 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 pueden ejecutar las aplicaciones 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, incluidos los 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 mostrar resultados a los usuarios de Cloud Search.

Requisitos previos

Antes de implementar el conector, recopila esta 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. Revisa la versión seleccionada:

    $ git checkout tags/v1-0.0.3

  3. Compila el conector:

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

  4. Extrae el archivo ZIP del conector en tu 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 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 completo, 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 parámetros específicos de la base de datos, consulta la Referencia de los parámetros de configuración. Para obtener 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 bases 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 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. Es 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 todos los registros configurados. Es obligatorio para la indexación inicial y la reindexación periódica.
  • Recorrido incremental: Lee solo los registros recién modificados. Requiere campos de marca de tiempo 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 > ?

Obligatorio para los programas incrementales. El "?" es un marcador de posición de marca de tiempo obligatorio.

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 búsqueda.

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

Designa columnas como de calidad alta, media o baja.