Programmer un transfert Oracle

Le service de transfert de données BigQuery pour le connecteur Oracle vous permet de planifier et de gérer automatiquement les jobs de chargement récurrents d'Oracle dans BigQuery.

Limites

Les transferts Oracle sont soumis aux limitations suivantes :

  • Le nombre maximal de connexions simultanées à une base de données Oracle est limité. Par conséquent, le nombre d'exécutions de transfert simultanées vers une seule base de données Oracle est limité à cette quantité maximale.
  • Vous devez configurer un rattachement de réseau dans les cas où aucune adresse IP publique n'est disponible pour une connexion à la base de données Oracle, avec les exigences suivantes :
    • La source de données doit être accessible à partir du sous-réseau où réside le rattachement de réseau.
    • Le rattachement de réseau ne doit pas se trouver dans le sous-réseau compris dans la plage 240.0.0.0/24.
    • Les rattachements de réseau ne peuvent pas être supprimés s'il existe des connexions actives. Pour supprimer un rattachement de réseau, contactez l'assistance Cloud Customer Care.
    • Pour l'emplacement multirégional us, le rattachement de réseau doit se trouver dans la région us-central1. Pour l'emplacement multirégional eu, le rattachement de réseau doit se trouver dans la région europe-west4.
  • La console Google Cloud ne permet que d'utiliser le rôle utilisateur Oracle NORMAL pour connecter Oracle au service de transfert de données BigQuery. Vous devez utiliser la CLI BigQuery pour vous connecter à l'aide des rôles utilisateur Oracle SYSDBA et SYSOPER.
  • L'intervalle minimum entre deux transferts Oracle récurrents est de 15 minutes. L'intervalle par défaut entre transferts récurrents est de 24 heures.

Avant de commencer

Les sections suivantes décrivent les étapes à suivre avant de créer un transfert Oracle.

Prérequis pour Oracle

Vous devez également disposer des informations sur la base de données Oracle suivantes lors de la création d'un transfert Oracle.

Nom du paramètre Description
database Nom de la base de données.
host

Nom d'hôte ou adresse IP de la base de données.

port

Numéro de port de la base de données.

username

Nom d'utilisateur permettant d'accéder à la base de données.

password

Mot de passe permettant d'accéder à la base de données.

connectionType

Type de connexion. Peut être défini sur SERVICE, SID ou TNS.

oracleObjects

Liste des objets Oracle à transférer.

Prérequis pour BigQuery

Rôles BigQuery requis

Pour obtenir les autorisations nécessaires pour créer un transfert, demandez à votre administrateur de vous accorder le rôle IAM Administrateur BigQuery (roles/bigquery.admin). Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour créer un transfert. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer un transfert :

  • bigquery.transfers.update sur l'utilisateur
  • bigquery.datasets.get sur l'ensemble de données cible
  • bigquery.datasets.update sur l'ensemble de données cible

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Configurer un transfert de données Oracle

Sélectionnez l'une des options suivantes :

Console

  1. Accédez à la page "Transferts de données" dans la console Google Cloud.

    Accéder à la page Transferts de données

  2. Cliquez sur Créer un transfert.

  3. Dans le champ Source de la section Type de source, sélectionnez Oracle.

  4. Dans la section Data source details (Détails de la source de données), procédez comme suit :

    • Sous Rattachement de réseau, sélectionnez un rattachement de réseau existant ou cliquez sur Créer un rattachement de réseau.
    • Pour le champ Hôte, saisissez le nom d'hôte ou l'adresse IP de la base de données.
    • Pour le champ Port, saisissez le numéro de port utilisé par la base de données Oracle pour les connexions entrantes, tel que 1520.
    • Dans le champ Nom de la base de données, saisissez le nom de la base de données Oracle.
    • Dans le champ Type de connexion, saisissez le type d'URL de connexion : SERVICE, SID ou TNS.
    • Dans le champ Nom d'utilisateur, saisissez le nom de l'utilisateur qui lance la connexion à la base de données Oracle.
    • Dans le champ Mot de passe, saisissez le mot de passe de l'utilisateur qui lance la connexion à la base de données Oracle.
    • Pour les objets Oracle à transférer, cliquez sur PARCOURIR pour sélectionner les tables à transférer vers l'ensemble de données de destination BigQuery.

      • Vous pouvez également saisir manuellement dans ce champ les objets à inclure dans le transfert de données.

      Configurer la configuration du transfert Oracle

  5. Dans la section Paramètres de destination, pour le champ Ensemble de données de destination, choisissez l'ensemble de données que vous avez créé pour stocker vos données.

  6. Dans la section Nom de la configuration de transfert, sous Nom à afficher, saisissez le nom du transfert de données.

  7. Dans la section Schedule options (Options de programmation) :

    • Dans la liste Fréquence de répétition, sélectionnez une option pour spécifier la fréquence d'exécution de ce transfert de données. Pour spécifier une fréquence de répétition personnalisée, sélectionnez Personnalisée. Si vous sélectionnez À la demande, ce transfert s'exécute lorsque vous déclenchez manuellement le transfert.

    • Le cas échéant, sélectionnez Commencer ou Commencer à l'heure définie, puis indiquez une date de début et une heure d'exécution.

  8. Dans le menu Compte de service, sélectionnez un compte de service associé à votre projet Google Cloud. Le compte de service sélectionné doit disposer des rôles requis pour exécuter ce transfert de données.

    Si vous vous êtes connecté avec une identité fédérée, vous devez disposer d'un compte de service pour créer un transfert de données. Si vous vous êtes connecté avec un compte Google, un compte de service pour le transfert est facultatif.

    Pour en savoir plus sur l'utilisation des comptes de service avec des transferts de données, consultez la page Utiliser des comptes de service.

  9. Facultatif : dans la section Options de notification, procédez comme suit :

    • Pour activer les notifications par e-mail, cliquez sur le bouton Notification par e-mail. Lorsque vous activez cette option, l'administrateur de transfert reçoit une notification par e-mail en cas d'échec de l'exécution du transfert.
    • Pour activer les notifications d'exécution de transfert Pub/Sub pour ce transfert, cliquez sur le bouton Notifications Pub/Sub. Vous pouvez sélectionner le nom de votre sujet ou cliquer sur Créer un sujet pour en créer un.
  10. Cliquez sur Enregistrer.

bq

Saisissez la commande bq mk, puis spécifiez l'indicateur de création de transfert --transfer_config.

bq mk \
    --transfer_config \
    --project_id=PROJECT_ID \
    --data_source=DATA_SOURCE \
    --display_name=DISPLAY_NAME \
    --target_dataset=DATASET \
    --params='PARAMETERS'

Où :

  • PROJECT_ID (Facultatif) ID de votre projet Google Cloud. Si vous ne fournissez pas de --project_id afin de spécifier un projet particulier, le projet par défaut est utilisé.
  • DATA_SOURCE. La source de données – oracle.
  • DISPLAY_NAME : nom à afficher de la configuration de transfert. Ce nom peut correspondre à toute valeur permettant d'identifier le transfert de données si vous devez le modifier ultérieurement.
  • DATASET : ensemble de données cible de la configuration de transfert.
  • PARAMETERS correspond aux paramètres de la configuration de transfert créée, au format JSON. Exemple : --params='{"param":"param_value"}'. Voici les paramètres d'un transfert de données Oracle :

    • connector.networkAttachment (facultatif) : nom du rattachement de réseau permettant de se connecter à la base de données Oracle.
    • connector.authentication.Username : nom d'utilisateur du compte Oracle.
    • connector.authentication.Password : mot de passe du compte Oracle.
    • connector.database : nom de la base de données Oracle.
    • connector.endpoint.host : nom d'hôte ou adresse IP de la base de données.
    • connector.endpoint.port : numéro de port utilisé par la base de données Oracle pour les connexions entrantes, telles que 1520.
    • connector.connectionType : type d'URL de connexion, SERVICE, SID ou TNS.
    • assets : chemin d'accès aux objets Oracle à transférer vers BigQuery, au format suivant : DATABASE_NAME/SCHEMA_NAME/TABLE_NAME

Par exemple, la commande suivante crée un transfert de données Oracle dans le projet par défaut avec tous les paramètres requis :

bq mk \
    --transfer_config \
    --target_dataset=mydataset \
    --data_source=oracle \
    --display_name='My Transfer' \
    --params='{"assets":["DB1/USER1/DEPARTMENT","DB1/USER1/EMPLOYEES"], \
        "connector.authentication.username": "User1", \
        "connector.authentication.password":"ABC12345", \
        "connector.database":"DB1", \
        "Connector.endpoint.host":"192.168.0.1", \
        "Connector.endpoint.port":"1520", \
        "connector.connectionType":"SERVICE", \
        "connector.networkAttachment": \
        "projects/dev-project1/regions/us-central1/networkattachments/na1"}'

API

Utilisez la méthode projects.locations.transferConfigs.create et fournissez une instance de la ressource TransferConfig.

Mappage des types de données

Le tableau suivant met en correspondance les types de données Oracle avec les types de données BigQuery correspondants.

Type de donnée Oracle Type de données BigQuery
BFILE BYTES
BINARY_DOUBLE FLOAT
BINARY_FLOAT FLOAT
BLOB BYTES
CHAR STRING
CLOB STRING
DATE DATETIME
FLOAT FLOAT
INTERVAL DAY TO SECOND STRING
INTERVAL YEAR TO MONTH STRING
LONG STRING
LONG RAW BYTES
NCHAR STRING
NCLOB STRING
NUMBER (without precision and scale) STRING
NUMBER (with precision and scale) NUMERIC
NVARCHAR2 STRING
RAW BYTES
ROWID STRING
TIMESTAMP DATETIME
TIMESTAMP WITH LOCAL TIME ZONE DATETIME
TIMESTAMP WITH TIME ZONE TIMESTAMP
UROWID STRING
VARCHAR STRING
VARCHAR2 STRING

Résoudre les problèmes liés à la configuration d'un transfert

Si vous rencontrez des problèmes lors de la configuration de votre transfert de données, consultez la section Problèmes de transfert Oracle.

Tarifs

Le transfert de données Oracle vers BigQuery est gratuit tant que cette fonctionnalité est disponible en version bêta.

Étapes suivantes