Exporter des données dans SQL
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer
L’exportation de données vers SQL vous permet d’exécuter une requête et d’envoyer ses résultats à une table dans une base de données SQL, telle qu’une base de données SQL hébergée par le service Azure SQL Database.
autorisations
Vous devez disposer au moins des autorisations d’administrateur de table pour exécuter cette commande.
Syntaxe
.export
[async
] to
sql
sqlTableNamesqlConnectionString [with
(
propertyName=
propertyValue [,
...]] )
<|
requête
En savoir plus sur les conventions de syntaxe.
Paramètres
Propriétés prises en charge
Nom | Valeurs | Description |
---|---|---|
firetriggers |
true ou false |
Si true , indique au système cible de déclencher des déclencheurs INSERT définis sur la table SQL. Par défaut, il s’agit de false . Pour plus d’informations, consultez BULK INSERT et System.Data.SqlClient.SqlBulkCopy. |
createifnotexists |
true ou false |
Si true , la table SQL cible est créée s’il n’existe pas déjà ; la primarykey propriété doit être fournie dans ce cas pour indiquer la colonne de résultat qui est la clé primaire. Par défaut, il s’agit de false . |
primarykey |
Si createifnotexists est true , cette propriété indique le nom de la colonne dans le résultat utilisé comme clé primaire de la table SQL si elle est créée par cette commande. |
|
persistDetails |
bool |
Indique que la commande doit conserver ses résultats (voir async l’indicateur). Par défaut, les exécutions asynchrones peuvent être désactivées true si l’appelant ne nécessite pas les résultats. La valeur par défaut est false dans les exécutions synchrones, mais peut être activée. |
token |
string |
Jeton d’accès Microsoft Entra que Kusto transfère au point de terminaison SQL pour l’authentification. Quand elle est définie, la chaîne de connexion SQL ne doit pas inclure d’informations d’authentification telles que Authentication , User ID ou Password . |
Authentification et autorisation
La méthode d’authentification est basée sur les chaîne de connexion fournies, et les autorisations requises pour accéder à la base de données SQL varient en fonction de la méthode d’authentification.
Les méthodes d’authentification prises en charge pour l’exportation de données vers SQL sont l’authentification intégrée microsoft Entra (emprunt d’identité) et l’authentification par nom d’utilisateur/mot de passe. Pour l’authentification d’emprunt d’identité, assurez-vous que le principal dispose des autorisations suivantes sur la base de données :
- Table existante : table UPDATE et INSERT
- Nouvelle table : CREATE, UPDATE et INSERT
Remarque
Dans la mesure du possible, la méthode d’authentification préférée est l’authentification intégrée microsoft Entra (emprunt d’identité).
Limitations et restrictions
Il existe certaines limitations et restrictions lors de l’exportation de données vers une base de données SQL :
Kusto est un service cloud. Le chaîne de connexion doit donc pointer vers une base de données accessible à partir du cloud. (En particulier, il n’est pas possible d’exporter vers une base de données locale, car elle n’est pas accessible à partir du cloud public.)
Kusto prend en charge l’authentification intégrée Active Directory lorsque le principal appelant est un principal Microsoft Entra (
aaduser=
ouaadapp=
). Kusto prend également en charge la fourniture des informations d’identification pour la base de données SQL dans le cadre de la chaîne de connexion. Les autres méthodes d’authentification ne sont pas prises en charge. L’identité présentée à la base de données SQL émane toujours de l’appelant de commande et non de l’identité du service Kusto elle-même.Si la table cible de la base de données SQL existe, elle doit correspondre au schéma de résultat de la requête. Dans certains cas, comme Azure SQL Database, cela signifie que la table a une colonne marquée comme colonne d’identité.
L’exportation de gros volumes de données peut prendre beaucoup de temps. Il est recommandé que la table SQL cible soit définie pour une journalisation minimale lors de l’importation en bloc. Voir SQL Server Moteur de base de données > ... > Fonctionnalités > de base de données Importation et exportation en bloc de données.
L’exportation de données est effectuée à l’aide de la copie en bloc SQL et ne fournit aucune garantie transactionnelle sur la base de données SQL cible. Consultez les opérations de transaction et de copie en bloc.
Le nom de la table SQL est limité à un nom composé de lettres, de chiffres, d’espaces, de traits de soulignement (
_
), de points (.
) et de traits d’union (-
).Le chaîne de connexion SQL est limité comme suit :
Persist Security Info
est défini explicitementfalse
sur ,Encrypt
est définitrue
sur , etTrust Server Certificate
est défini surfalse
.La propriété de clé primaire de la colonne peut être spécifiée lors de la création d’une table SQL. Si la colonne est de type
string
, SQL peut refuser de créer la table en raison d’autres limitations sur la colonne clé primaire. La solution de contournement consiste à créer manuellement la table dans SQL avant d’exporter les données. Cette limitation existe, car les colonnes clés primaires dans SQL ne peuvent pas être de taille illimitée, mais les colonnes de table Kusto n’ont pas de limitations de taille déclarées.
Documentation sur l’authentification intégrée Microsoft Entra de base de données Azure
Exemples
Exportation asynchrone vers une table SQL
Dans l’exemple suivant, Kusto exécute la requête, puis exporte le premier jeu d’enregistrements produit par la requête vers la table MySqlTable
dans la base de données MyDatabase
dans le serveur myserver
.
.export async to sql MySqlTable
h@"Server=tcp:myserver.database.windows.net,1433;Authentication=Active Directory Integrated;Initial Catalog=MyDatabase;Connection Timeout=30;"
<| print Id="d3b68d12-cbd3-428b-807f-2c740f561989", Name="YSO4", DateOfBirth=datetime(2017-10-15)
Exporter vers une table SQL s’il n’existe pas
Dans l’exemple suivant, Kusto exécute la requête, puis exporte le premier jeu d’enregistrements produit par la requête vers la table MySqlTable
dans la base de données MyDatabase
dans le serveur myserver
.
La table cible est créée s’il n’existe pas dans la base de données cible.
.export async to sql ['dbo.MySqlTable']
h@"Server=tcp:myserver.database.windows.net,1433;Authentication=Active Directory Integrated;Initial Catalog=MyDatabase;Connection Timeout=30;"
with (createifnotexists="true", primarykey="Id")
<| print Message = "Hello World!", Timestamp = now(), Id=12345678
Contenu connexe
- ingérer à partir du de requête
- Vue d’ensemble des commandes Gestion
- Exporter vers une table externe
- Exporter des données vers des de stockage cloud
- Créer et modifier des tables externes Azure SQL