Déployer un connecteur de base de données

Vous pouvez configurer Google Cloud Search afin qu'il découvre et indexe les données des bases de données de votre organisation grâce au connecteur de base de données Cloud Search.

Remarques importantes

Vous pouvez installer et exécuter le connecteur de base de données Cloud Search dans pratiquement tous les environnements permettant d'exécuter des applications Java, à condition que le connecteur ait accès à Internet et à la base de données.

Configuration requise

Configuration requise
Système d'exploitation Windows ou Linux
Base de données SQL Toutes les bases de données SQL associées à un pilote JDBC version 4.0 ou ultérieure, y compris :
  • MS SQL Server (2008, 2012, 2014, 2016)
  • Oracle (11g, 12c)
  • Google Cloud SQL
  • MySQL
Logiciel Pilote JDBC (téléchargement et installation séparés)

Déployer le connecteur

Ces étapes décrivent comment installer le connecteur et le configurer pour indexer vos bases de données et renvoyer les résultats aux utilisateurs de Cloud Search.

Prérequis

Avant de déployer le connecteur, rassemblez les informations suivantes :

Étape 1 : Télécharger et compiler le logiciel du connecteur de base de données

  1. Clonez le dépôt du connecteur à partir de GitHub.

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

  2. Vérifiez la version sélectionnée :

    $ git checkout tags/v1-0.0.3

  3. Compilez le connecteur :

    $ mvn package
    Pour ignorer les tests, utilisez mvn package -DskipTests.

  4. Extrayez le fichier ZIP du connecteur dans votre répertoire d'installation :

    $ 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

Étape 2 : Configurer le connecteur de base de données

  1. Créez un fichier texte nommé connector-config.properties (par défaut). Google recommande l'extension .properties ou .config. Enregistrez-le dans le même répertoire que le connecteur.

  2. Ajoutez des paramètres sous forme de paires clé/valeur. Le fichier doit spécifier l'accès à la source de données et à la base de données, une instruction SQL de parcours complet, un titre de champ de contenu et des définitions de colonnes.

    # 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
    

    Pour les paramètres spécifiques à la base de données, consultez le Guide de référence des paramètres de configuration. Pour les paramètres courants, consultez Paramètres de connecteur fournis par Google.

Étape 3 : Exécuter le connecteur de base de données

Exécutez le connecteur à partir de la ligne de commande :

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]

Le connecteur signale les erreurs de configuration et d'initialisation. D'autres erreurs, telles que les syntaxes incorrectes dans les instructions SQL, s'affichent lorsque le connecteur tente d'accéder à la base de données pour la première fois.

Guide de référence des paramètres de configuration

Cette section liste les paramètres utilisés dans le fichier de configuration du connecteur de base de données.

Paramètres d'accès à la source de données

Paramètre Paramètre
ID de la source de données api.sourceId = source-ID

Obligatoire. ID de la source Cloud Search.

Compte de service api.serviceAccountPrivateKeyFile = path

Obligatoire. Chemin d'accès au fichier de clé du compte de service.

Paramètres d'accès à la base de données

Paramètre Paramètre
URL de la base de données db.url = database-URL

Obligatoire. Chemin d'accès complet, par exemple : jdbc:mysql://127.0.0.1/dbname.

Identifiants db.user = username
db.password = password

Obligatoire. Un accès en lecture est nécessaire pour les enregistrements concernés.

Paramètres de requête SQL de balayage

Le connecteur utilise des requêtes SQL SELECT pour parcourir les enregistrements.

  • Balayage complet : lit tous les enregistrements configurés. Obligatoire pour l'indexation initiale et la réindexation périodique.
  • Balayage incrémentiel : lit uniquement les enregistrements récemment modifiés. Nécessite des champs d'horodatage dans la base de données.
Paramètre Paramètre
Requête de balayage complet db.allRecordsSql = SELECT columns FROM table

Obligatoire. Incluez toutes les colonnes utilisées pour le contenu, les ID et les LCA.

Requête de balayage incrémentiel db.incrementalUpdateSql = SELECT columns FROM table WHERE update_time > ?

Obligatoire pour les plannings incrémentaux. Le "?" est un espace réservé obligatoire pour l'horodatage.

Paramètres de définition des colonnes

Paramètre Paramètre
Toutes les colonnes db.allColumns = column-1, column-2, ...

Obligatoire. Liste toutes les colonnes référencées dans les requêtes SQL.

Colonnes à clé unique db.uniqueKeyColumns = column-1

Obligatoire. Définit l'ID unique de chaque enregistrement.

Colonne "Lien de l'URL" url.columns = column-1

Obligatoire. Spécifie la colonne utilisée pour les résultats de recherche cliquables.

Champs de contenu

Paramètre Paramètre
Colonne "Titre" contentTemplate.db.title = column-name

Obligatoire. Priorité la plus élevée pour l'indexation de la recherche.

Définition des priorités contentTemplate.db.quality.high = column-1

Attribuez aux colonnes une qualité élevée, moyenne ou faible.