Creare e modificare tabelle esterne di Azure SQL
Si applica a: ✅Microsoft Fabric✅Azure 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
- SQL Server
- MySQL
- PostgreSQL
- Cosmos DB
Autorizzazioni
Per richiedere almeno le autorizzazioni utente del database e per .alter
richiedere almeno le autorizzazioni di amministratore tabella..create
Per .create
, .alter
o .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",
)