Charger des données Microsoft SQL Server dans BigQuery
Remarque : Pour obtenir de l'aide ou envoyer des commentaires sur cette fonctionnalité, contactez dts-preview-support@google.com.Pour planifier des transferts de données récurrents de Microsoft SQL Server vers BigQuery, vous pouvez créer une configuration de transfert afin de spécifier les objets de données à transférer et la fréquence de planification du transfert de données. Une fois la configuration de transfert configurée, le service de transfert de données BigQuery transfère les dernières données dans une table BigQuery selon la planification spécifiée.
Pour savoir comment fonctionne un transfert Microsoft SQL Server, consultez Présentation des transferts de données Microsoft SQL Server.
Limites
Les tâches de transfert de données Microsoft SQL Server sont soumises aux limites suivantes :
- Le nombre de connexions simultanées à une base de données Microsoft SQL Server est limité. Par conséquent, le nombre d'exécutions de transfert simultanées vers une seule base de données Microsoft SQL Server est également limité. Assurez-vous que le nombre de tâches de transfert simultanées est inférieur au nombre maximal de connexions simultanées acceptées par la base de données Microsoft SQL Server.
- Certains types de données Microsoft SQL Server peuvent être mappés au type
STRINGdans BigQuery pour éviter toute perte de données. Par exemple, certains types numériques de Microsoft SQL Server dont la précision et l'échelle ne sont pas définies peuvent être mappés àSTRINGdans BigQuery. Pour en savoir plus, consultez la section Mappage des types de données.
Limites des transferts incrémentiels
Les transferts Microsoft SQL Server incrémentiels sont soumis aux limites suivantes :- Vous ne pouvez choisir que des colonnes
TIMESTAMPcomme colonnes de filigrane. - L'ingestion incrémentielle n'est compatible qu'avec les éléments comportant des colonnes de filigrane valides.
- Les valeurs d'une colonne de filigrane doivent augmenter de manière monotone.
- Les transferts incrémentiels ne peuvent pas synchroniser les opérations de suppression dans la table source.
- Une seule configuration de transfert ne peut prendre en charge que l'ingestion incrémentielle ou complète.
- Vous ne pouvez pas mettre à jour les objets dans la liste
assetaprès la première exécution d'ingestion incrémentielle. - Vous ne pouvez pas modifier le mode d'écriture dans une configuration de transfert après la première exécution d'ingestion incrémentielle.
- Vous ne pouvez pas modifier la colonne de filigrane ni la clé primaire après la première exécution d'ingestion incrémentielle.
- La table BigQuery de destination est groupée à l'aide de la clé primaire fournie et est soumise aux limites des tables groupées.
- Lorsque vous mettez à jour une configuration de transfert existante vers le mode d'ingestion incrémentielle pour la première fois, le premier transfert de données après cette mise à jour transfère toutes les données disponibles à partir de votre source de données. Tous les transferts de données incrémentiels suivants ne transféreront que les lignes nouvelles et mises à jour de votre source de données.
- Nous vous recommandons de créer des index sur la colonne de filigrane. Ce connecteur utilise des colonnes de filigrane pour les filtres dans les transferts incrémentiels. L'indexation de ces colonnes peut donc améliorer les performances.
- Lorsque vous effectuez un transfert incrémentiel, vous devez utiliser le mappage de type de données mis à jour.
Avant de commencer
Avant de pouvoir planifier un transfert de données Microsoft SQL Server, vous devez respecter les prérequis suivants.
Prérequis pour Microsoft SQL Server
Vous devez avoir créé un compte utilisateur dans la base de données Microsoft SQL Server. Pour en savoir plus, consultez Créer un utilisateur avec une connexion.
Prérequis pour BigQuery
- Vérifiez que vous avez effectué toutes les actions requises pour activer le service de transfert de données BigQuery.
- Créez un ensemble de données BigQuery pour stocker vos données.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer un transfert de données Microsoft SQL Server, demandez à votre administrateur de vous accorder le rôle IAM Administrateur BigQuery (roles/bigquery.admin) sur votre projet.
Pour en savoir plus sur l'attribution de rôles, consultez 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 de données Microsoft SQL Server. 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 de données Microsoft SQL Server :
-
bigquery.transfers.update -
bigquery.datasets.get
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Configuration du réseau
Vous devez configurer des configurations réseau spécifiques lorsqu'une adresse IP publique n'est pas disponible pour la connexion à la base de données Microsoft SQL Server. Pour en savoir plus, consultez les sections suivantes :
- Configurer une connexion à une Google Cloud instance
- Configurer une connexion à AWS
- Configurer une connexion à Azure
Configurer un transfert de données Microsoft SQL Server
Sélectionnez l'une des options suivantes :
Console
Accédez à la page Transferts de données.
Cliquez sur Créer un transfert.
Dans le champ Source de la section Type de source , sélectionnez Microsoft SQL Server.
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 Microsoft SQL Server.
- Pour le champ Numéro de port, saisissez le numéro de port de la base de données Microsoft SQL Server.
- Pour le champ Nom de la base de données, saisissez le nom de la base de données Microsoft SQL Server.
- Pour le champ Nom d'utilisateur, saisissez le nom d'utilisateur Microsoft SQL Server qui lance la connexion à la base de données Microsoft SQL Server.
- Pour le champ Mot de passe, saisissez le mot de passe de l'utilisateur Microsoft SQL Server qui lance la connexion à la base de données Microsoft SQL Server.
- Dans le champ Mode TLS, sélectionnez une option dans le menu. Pour en savoir plus sur les modes TLS, consultez Configuration TLS.
- Dans le champ Certificat PEM approuvé, saisissez le certificat public de l'autorité de certification qui a émis le certificat TLS du serveur de base de données. Pour en savoir plus, consultez Certificat de serveur approuvé (PEM).
- Pour Activer le mappage hérité, sélectionnez true (vrai, par défaut) afin d'utiliser le mappage de type de données hérité. Sélectionnez false (faux) pour utiliser le nouveau mappage des types de données. Si vous effectuez un transfert incrémentiel, cette valeur doit être false. Pour en savoir plus sur les mises à jour du mappage de type de données , consultez 16 mars 2027. serveur de base de données.
- Pour Type d'ingestion, sélectionnez Complet ou Incrémentiel.
- Si vous sélectionnez Incrémentiel (Aperçu), pour Mode d'écriture, sélectionnez Ajouter ou Faire un upsert. Pour en savoir plus sur les différents modes d'écriture, consultez Transferts complets ou incrémentiels.
- Pour Objets Microsoft SQL Server à transférer, parcourez la table Microsoft SQL Server ou saisissez manuellement les noms des tables requises pour le transfert.
Dans la section Paramètres de destination, pour le champ Ensemble de données, sélectionnez l' ensemble de données que vous avez créé pour stocker vos données, ou cliquez sur Créer un ensemble de données et créez-en un à utiliser comme ensemble de données de destination.
Dans la section Nom de la configuration de transfert, sous Nom à afficher, saisissez le nom du transfert. Ce nom peut correspondre à n'importe quelle valeur permettant d'identifier le transfert si vous devez le modifier ultérieurement.
Dans la section Options de programmation, procédez comme suit :
- Sélectionnez une fréquence de répétition. Si vous sélectionnez l'option Heures, Jours (par défaut), Semaines ou Mois, vous devez également spécifier une fréquence. Vous pouvez également sélectionner l'option Personnalisé pour créer une fréquence de répétition plus spécifique. Si vous sélectionnez l'option À la demande, ce transfert de données s'exécute uniquement lorsque vous le déclenchez manuellement.
- Le cas échéant, sélectionnez l'option Démarrer maintenant ou Démarrer à l'heure définie , puis indiquez une date de début et une heure d'exécution.
Facultatif : dans la section Options de notification, procédez comme suit :
- Pour activer les notifications par e-mail, cliquez sur le bouton Notifications par e-mail pour le mettre en position "Activé". Lorsque vous activez cette option, l'administrateur de transfert reçoit une notification par e-mail si l'exécution du transfert échoue.
- Pour configurer les notifications d'exécution Pub/Sub pour votre transfert, cliquez sur le bouton Notifications Pub/Sub pour le mettre en position "Activé". Vous pouvez sélectionner le nom de votre sujet ou cliquer sur Créer un sujet pour en créer un.
Facultatif : dans la section Options avancées, sélectionnez un type de chiffrement pour ce transfert. Vous pouvez sélectionner une clé Google-owned and Google-managed encryption key ou une clé Cloud Key Management Service appartenant au client. Pour en savoir plus sur les clés de chiffrement, consultez Clés de chiffrement gérées par le client (CMEK).
Cliquez sur Enregistrer.
bq
Saisissez la commande bq mk
et 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'
Remplacez les éléments suivants :
PROJECT_ID(facultatif) : ID de votre Google Cloud projet. Si vous ne fournissez pas d'indicateur--project_idafin de spécifier un projet particulier, le projet par défaut est utilisé.DATA_SOURCE: source de données, qui estsqlserver.DISPLAY_NAME: nom à afficher de la configuration de transfert de données. Ce nom peut correspondre à toute valeur permettant d'identifier le transfert si vous devez le modifier ultérieurement.DATASET: ensemble de données cible de la configuration de transfert de données.PARAMETERS: paramètres de la configuration de transfert créée, au format JSON. Exemple :--params='{"param":"param_value"}'. Voici les paramètres d'un transfert Microsoft SQL Server :connector.networkAttachment(facultatif) : nom du rattachement de réseau permettant de se connecter à la base de données Microsoft SQL Server.connector.database: nom de la base de données Microsoft SQL Server.connector.endpoint.host: nom d'hôte ou adresse IP de la base de données.connector.endpoint.port: numéro de port de la base de données.connector.authentication.username: nom de l'utilisateur de base de données.connector.authentication.password: mot de passe de l'utilisateur de base de données.connector.legacyMapping: défini surtrue(par défaut) pour utiliser le mappage de type de données hérité. Défini surfalse(faux) pour utiliser le nouveau mappage des types de données. Si vous effectuez un transfert incrémentiel, cette valeur doit êtrefalse. Pour en savoir plus sur les mises à jour du mappage de type de données , consultez 16 mars 2027.connector.tls.mode: spécifiez une configuration TLS à utiliser avec ce transfert :ENCRYPT_VERIFY_CA_AND_HOSTpour chiffrer les données, et valider la CA et le nom d'hôteENCRYPT_VERIFY_CApour chiffrer les données, et valider uniquement la CAENCRYPT_VERIFY_NONEpour le chiffrement des données uniquementDISABLEpour aucune validation ni aucun chiffrement
connector.tls.trustedServerCertificate: (facultatif) fournissez un ou plusieurs certificats encodés au format PEM. Obligatoire uniquement si la valeur deconnector.tls.modeestENCRYPT_VERIFY_CA_AND_HOSTouENCRYPT_VERIFY_CA.ingestionType: spécifiezfullouincremental. Les transferts incrémentiels sont compatibles avec la version preview. Pour en savoir plus, consultez Transferts complets ou incrémentiels.writeMode: spécifiezWRITE_MODE_APPENDouWRITE_MODE_UPSERT.watermarkColumns: spécifiez des colonnes de votre table comme colonnes de filigrane. Ce champ est obligatoire pour les transferts incrémentiels.primaryKeys: spécifiez des colonnes de votre table comme clés primaires. Ce champ est obligatoire pour les transferts incrémentiels.assets: liste des noms des tables Microsoft SQL Server à transférer depuis la base de données Microsoft SQL Server dans le cadre du transfert.
Par exemple, la commande suivante crée un transfert Microsoft SQL Server appelé My Transfer :
bq mk \ --transfer_config --target_dataset=mydataset --data_source=sqlserver --display_name='My Transfer' --params='{"assets":["DB1/DEPARTMENT","DB1/EMPLOYEES"], "connector.authentication.username": "User1", "connector.authentication.password":"ABC12345", "connector.database":"DB1", "connector.endpoint.host":"192.168.0.1", "connector.endpoint.port":"1520", "connector.networkAttachment":"projects/dev-project1/regions/us-central1/networkattachments/na1", "ingestionType":"incremental", "writeMode":"WRITE_MODE_APPEND", "watermarkColumns":["createdAt","createdAt"], "primaryKeys":[['dep_id'], ['report_by','report_title']], "connector.tls.mode": "ENCRYPT_VERIFY_CA_AND_HOST", "connector.tls.trustedServerCertificate": "PEM-encoded certificate"}'
Lorsque vous spécifiez plusieurs éléments lors d'un transfert incrémentiel, les valeurs des champs watermarkColumns et primaryKeys correspondent à la position des valeurs dans le champ assets. Dans l'exemple suivant, dep_id correspond à la table DB1/DEPARTMENT, tandis que report_by et report_title correspondent à la table DB1/EMPLOYEES.
"primaryKeys":[['dep_id'], ['report_by','report_title']], "assets":["DB1/DEPARTMENT","DB1/EMPLOYEES"],
Pour exécuter manuellement un transfert de données en dehors de votre planification habituelle, vous pouvez lancer une exécution de remplissage.
Résoudre les problèmes
Pour résoudre les problèmes liés à votre transfert de données, consultez Problèmes de transfert avec Microsoft SQL Server.
Transférer des métadonnées
Vous pouvez également utiliser le connecteur Microsoft SQL Server pour transférer des métadonnées vers Knowledge Catalog. Pour en savoir plus, consultez Charger des métadonnées Microsoft SQL Server dans Knowledge Catalog.Étape suivante
- Consultez une présentation du service de transfert de données BigQuery.
- Découvrez comment gérer les transferts, y compris obtenir des informations sur une configuration de transfert, répertorier les configurations de transfert et afficher l'historique d'exécution d'un transfert.
- Découvrez comment charger des données avec les opérations BigQuery Omni.