Partager via


Créer et modifier des tables externes Azure SQL

Crée ou modifie une table externe Azure SQL dans la base de données dans laquelle la commande est exécutée.

Remarque

  • Si la table existe, la .create commande échoue avec une erreur. Utilisez ou .alter modifiez .create-or-alter des tables existantes.
  • La modification du schéma d’une table Azure SQL externe n’est pas prise en charge.

Types de tables externes Azure SQL pris en charge

  1. SQL Server
  2. MySQL
  3. PostgreSQL
  4. Cosmos DB

autorisations

Pour .create exiger au moins des autorisations utilisateur de base de données et .alter exiger au moins des autorisations d’administrateur de table.

Pour .create, .alterou .create-or-alter une table externe à l’aide de l’authentification d’identité managée nécessite des autorisations d’administrateur de base de données. Cette méthode est prise en charge pour les tables externes SQL Server et Cosmos DB.

Syntaxe

(.create | .create-or-alter.alter | ) external table Schémasql kind) = TableName ([ table = SqlTableName ] (SqlConnectionString) [with ( [ SqlDialect ] , [ sqlDialect = Property , ... ]])

En savoir plus sur les conventions de syntaxe.

Paramètres

Nom Type Requise Description
TableName string ✔️ Nom de la table externe. Le nom doit suivre les règles relatives aux noms d’entités, et une table externe ne peut pas avoir le même nom qu’une table régulière dans la même base de données.
Schéma string ✔️ Le schéma de données externes est une liste séparée par des virgules d’un ou plusieurs noms de colonnes et types de données, où chaque élément suit le format : ColumnName : ColumnType.
SqlTableName string Nom de la table SQL qui n’inclut pas le nom de la base de données. Par exemple, « MySqlTable » et non « db1 ». MySqlTable ». Si le nom de la table contient un point (« . »), utilisez la notation ['Name.of.the.table'].


Cette spécification est requise pour tous les types de tables, à l’exception de Cosmos DB, comme pour Cosmos DB, le nom de la collection fait partie de la chaîne de connexion.
SqlConnectionString string ✔️ Chaîne de connexion au serveur SQL.
SqlDialect string Indique le type de table externe Azure SQL. SQL Server est la valeur par défaut. Pour MySQL, spécifiez MySQL. Pour PostgreSQL, spécifiez PostgreSQL. Pour Cosmos DB, spécifiez CosmosDbSql.
Propriété string Paire de propriétés clé-valeur au format PropertyName = PropertyValue. Voir les propriétés facultatives.

Avertissement

Les chaînes de connexion et les requêtes qui incluent des informations confidentielles doivent être masquées afin qu’elles soient omises à partir de tout suivi Kusto. Pour plus d’informations, consultez littéraux de chaîne obfusqués.

Propriétés facultatives

Propriété Type Description
folder string Dossier de la table.
docString string Chaîne qui documente la table.
firetriggers true/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/ 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 string Si createifnotexists c’est truele cas, le nom de colonne résultant est utilisé comme clé primaire de la table SQL s’il est créé par cette commande.

Authentification et autorisation

Pour interagir avec une table Azure SQL externe à partir d’Azure Data Explorer, vous devez spécifier des moyens d’authentification dans le cadre de SqlConnectionString. SqlConnectionString définit la ressource pour accéder à ses informations d’authentification et ses informations d’authentification.

Pour plus d’informations, consultez les méthodes d’authentification de table externe Azure SQL.

Remarque

Si la table externe est utilisée pour l’exportation continue, l’authentification doit être effectuée par nom d’utilisateur/mot de passe ou identités managées.

Exemples

Les exemples suivants montrent comment créer chaque type de table externe Azure SQL.

SQL Server

.create external table MySqlExternalTable (x:long, s:string) 
kind=sql
table=MySqlTable
( 
   h@'Server=tcp:myserver.database.windows.net,1433;Authentication=Active Directory Integrated;Initial Catalog=mydatabase;'
)
with 
(
   docstring = "Docs",
   folder = "ExternalTables", 
   createifnotexists = true,
   primarykey = x,
   firetriggers=true
)  

Sortie

TableName TableType Dossier DocString Propriétés
MySqlExternalTable SQL ExternalTables Documentation {
« TargetEntityKind » : « sqltable' »,
« TargetEntityName » : « MySqlTable »,
« TargetEntityConnectionString » : « Server=tcp :myserver.database.windows.net,1433 ; Authentication=Active Directory Integrated ; Initial Catalog=mydatabase ;",
« FireTriggers » : true,
« CreateIfNotExists » : true,
« PrimaryKey » : « x »
}

MySQL

.create external table MySqlExternalTable (x:long, s:string) 
kind=sql
table=MySqlTable
( 
   h@'Server=myserver.mysql.database.windows.net;Port = 3306;UID = USERNAME;Pwd = PASSWORD;Database = mydatabase;'
)
with 
(
   sqlDialect = "MySql",
   docstring = "Docs",
   folder = "ExternalTables", 
)  

PostgreSQL

.create external table PostgreSqlExternalTable (x:long, s:string) 
kind=sql
table=PostgreSqlTable
( 
   h@'Host = hostname.postgres.database.azure.com; Port = 5432; Database= db; User Id=user; Password=pass; Timeout = 30;'
)
with 
(
   sqlDialect = "PostgreSQL",
   docstring = "Docs",
   folder = "ExternalTables", 
)  

Cosmos DB

.create external table CosmosDBSQLExternalTable (x:long, s:string) 
kind=sql
( 
   h@'AccountEndpoint=https://cosmosdbacc.documents.azure.com/;Database=MyDatabase;Collection=MyCollection;AccountKey=' h'R8PM...;'
)
with 
(
   sqlDialect = "CosmosDbSQL",
   docstring = "Docs",
   folder = "ExternalTables", 
)