Condividi tramite


Creare e modificare tabelle esterne di Azure SQL

Si applica a: ✅Microsoft FabricAzure Esplora dati

Crea o modifica una tabella esterna sql di Azure nel database in cui viene eseguito il comando.

Nota

  • Se la tabella esiste, il .create comando avrà esito negativo con un errore. Utilizzare .create-or-alter o .alter per modificare le tabelle esistenti.
  • La modifica dello schema di una tabella SQL di Azure esterna non è supportata.

Tipi di tabella esterna sql di Azure supportati

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

Autorizzazioni

Per richiedere almeno le autorizzazioni utente del database e per .alter richiedere almeno le autorizzazioni di amministratore tabella..create

Per .create, .altero .create-or-alter una tabella esterna tramite l'autenticazione dell'identità gestita, sono necessarie autorizzazioni di amministratore del database. Questo metodo è supportato per le tabelle esterne di SQL Server e Cosmos DB.

Sintassi

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

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
TableName string ✔️ Nome della tabella esterna. Il nome deve seguire le regole per i nomi di entità e una tabella esterna non può avere lo stesso nome di una normale tabella nello stesso database.
Schema string ✔️ Lo schema dei dati esterni è un elenco delimitato da virgole di uno o più nomi di colonne e tipi di dati, in cui ogni elemento segue il formato ColumnName : ColumnType.
SqlTableName string Nome della tabella SQL che non include il nome del database. Ad esempio, "MySqlTable" e non "db1. MySqlTable". Se il nome della tabella contiene un punto ("."), utilizzare la notazione ['Name.of.the.table'].


Questa specifica è necessaria per tutti i tipi di tabelle ad eccezione di Cosmos DB, perché per Cosmos DB il nome della raccolta fa parte del stringa di connessione.
SqlConnectionString string ✔️ Il stringa di connessione al server SQL.
SqlDialect string Indica il tipo di tabella esterna sql di Azure. SQL Server è l'impostazione predefinita. Per MySQL specificare MySQL. Per PostgreSQL specificare PostgreSQL. Per Cosmos DB specificare CosmosDbSql.
Proprietà string Coppia di proprietà chiave-valore nel formato PropertyName = PropertyValue. Vedere proprietà facoltative.

Avviso

Le stringhe di connessione e le query che includono informazioni riservate devono essere offuscate in modo che vengano omesse da qualsiasi traccia Kusto. Per altre informazioni, vedere Valori letterali stringa offuscati.

Proprietà facoltative

Proprietà Type Descrizione
folder string Cartella della tabella.
docString string Stringa che documenta la tabella.
firetriggers true/false Se true, indica al sistema di destinazione di attivare trigger INSERT definiti nella tabella SQL. Il valore predefinito è false. Per altre informazioni, vedere BULK INSERT e System.Data.SqlClient.SqlBulkCopy)
createifnotexists true/ false Se true, la tabella SQL di destinazione viene creata se non esiste già. La primarykey proprietà deve essere specificata in questo caso per indicare la colonna del risultato che è la chiave primaria. Il valore predefinito è false.
primarykey string Se createifnotexists è true, il nome della colonna risultante viene usato come chiave primaria della tabella SQL se viene creato da questo comando.

Autenticazione e autorizzazione

Per interagire con una tabella SQL di Azure esterna, è necessario specificare i mezzi di autenticazione come parte di SqlConnectionString. SqlConnectionString definisce la risorsa per accedere alle informazioni di autenticazione e .

Per altre informazioni, vedere Metodi di autenticazione della tabella esterna di SQL di Azure.

Nota

Se la tabella esterna viene usata per l'esportazione continua, l'autenticazione deve essere eseguita tramite nome utente/password o identità gestite.

Esempi

Gli esempi seguenti illustrano come creare ogni tipo di tabella esterna sql di Azure.

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
)  

Output

TableName TableType Cartella DocString Proprietà
MySqlExternalTable Sql ExternalTables Documenti {
"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", 
)