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 définie, 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 en savoir plus sur le fonctionnement d'un transfert Microsoft SQL Server, consultez Présentation des transferts de données Microsoft SQL Server.
Limites
Les jobs de transfert de données Microsoft SQL Server sont soumis 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 jobs de transfert simultanés est inférieur au nombre maximal de connexions simultanées accepté 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 pour lesquels la précision et l'échelle ne sont pas définies peuvent être mappés surSTRINGdans 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
TIMESTAMPcolonnes comme colonnes de filigrane. - L'ingestion incrémentielle n'est possible que pour 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 configuration de transfert ne peut accepter que l'ingestion incrémentielle ou l'ingestion complète.
- Vous ne pouvez pas mettre à jour les objets de 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 pour passer au 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 de votre source de données. Tous les transferts de données incrémentiels ultérieurs 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 nouveau mappage des types de données.
Avant de commencer
Avant de pouvoir planifier un transfert de données Microsoft SQL Server, vous devez remplir les conditions préalables suivantes.
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 un identifiant.
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 paramètres réseau spécifiques lorsqu'aucune adresse IP publique n'est disponible pour la connexion à la base de données Microsoft SQL Server. Pour plus d'informations, consultez les sections suivantes :
- Configurer une connexion à une instance Google Cloud
- 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.
- Dans le champ Hôte, saisissez le nom d'hôte ou l'adresse IP de la base de données Microsoft SQL Server.
- Dans le champ Numéro de port, saisissez le numéro de port de la base de données Microsoft SQL Server.
- Dans le champ Nom de la base de données, saisissez le nom de la base de données Microsoft SQL Server.
- Dans le champ Nom d'utilisateur, saisissez le nom de l'utilisateur Microsoft SQL Server qui établit la connexion à la base de données Microsoft SQL Server.
- Dans le champ Mot de passe, saisissez le mot de passe de l'utilisateur Microsoft SQL Server qui initie 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 l'ancien mappage, sélectionnez true (par défaut) pour utiliser l'ancien mappage des types de données. Sélectionnez false 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 des types de données, consultez la section 16 mars 2027.
- 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.
- Dans le champ 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ée pour créer une fréquence de répétition plus spécifique. Si vous sélectionnez l'option À la demande, le transfert de données s'exécute uniquement lorsque vous le déclenchez manuellement.
- Le cas échéant, sélectionnez l'option Commencer ou Commencer à 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. Lorsque vous activez cette option, l'administrateur du 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, activez l'option Notifications Pub/Sub. 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 keyou 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, 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'
Remplacez les éléments suivants :
PROJECT_ID(facultatif) : ID de votre projet Google Cloud . Si vous ne fournissez pas l'option--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.PARAMETERScorrespond 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 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 la base de données.connector.legacyMapping: définissez cette option surtrue(par défaut) pour utiliser l'ancien mappage de types de données. Définissez cette option surfalsepour 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 des types de données, consultez la section 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 la CA uniquementENCRYPT_VERIFY_NONEpour le chiffrement des données uniquementDISABLEpour aucun chiffrement ni aucune validation
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 disponibles en preview. Pour en savoir plus, consultez Transferts complets ou incrémentiels.writeMode: spécifiezWRITE_MODE_APPENDouWRITE_MODE_UPSERT.watermarkColumns: spécifiez les 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 nommé 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 Microsoft SQL Server.
Métadonnées de transfert
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.Étapes suivantes
- Consultez la présentation du service de transfert de données BigQuery.
- Découvrez comment gérer les transferts, y compris comment obtenir des informations sur une configuration de transfert, lister 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.