Tworzenie i zmienianie tabel zewnętrznych usługi Azure SQL
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer
Tworzy lub zmienia zewnętrzną tabelę usługi Azure SQL w bazie danych, w której jest wykonywane polecenie.
Uwaga
- Jeśli tabela istnieje,
.create
polecenie zakończy się niepowodzeniem z powodu błędu. Użyj polecenia.create-or-alter
lub.alter
, aby zmodyfikować istniejące tabele. - Zmiana schematu zewnętrznej tabeli Azure SQL nie jest obsługiwana.
Obsługiwane typy tabel zewnętrznych usługi Azure SQL
- SQL Server
- MySQL
- PostgreSQL
- Cosmos DB
Uprawnienia
Wymaga .create
co najmniej uprawnień użytkownika bazy danych i wymaga .alter
co najmniej uprawnień administratora tabeli.
Do .create
, .alter
lub .create-or-alter
tabeli zewnętrznej przy użyciu uwierzytelniania tożsamości zarządzanej wymaga uprawnień administratora bazy danych. Ta metoda jest obsługiwana w przypadku tabel zewnętrznych programu SQL Server i usługi Cosmos DB.
Składnia
(.create
| .alter
.create-or-alter
| ) external
table
TableName(
Schemasql
=
)
kind
[ table
=
SqlTableName ] (
SqlConnectionString)
[with
(
[ sqlDialect
=
SqlDialect ] ,
[ Właściwość ,
... ]])
Dowiedz się więcej na temat konwencji składni.
Parametry
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
TableName | string |
✔️ | Nazwa tabeli zewnętrznej. Nazwa musi być zgodna z regułami dotyczącymi nazw jednostek, a tabela zewnętrzna nie może mieć takiej samej nazwy jak zwykła tabela w tej samej bazie danych. |
Schemat | string |
✔️ | Schemat danych zewnętrznych jest rozdzielaną przecinkami listą co najmniej jednej nazwy kolumn i typów danych, gdzie każdy element jest zgodny z formatem ColumnName : ColumnType. |
SqlTableName | string |
Nazwa tabeli SQL, która nie zawiera nazwy bazy danych. Na przykład "MySqlTable", a nie "db1". MySqlTable". Jeśli nazwa tabeli zawiera kropkę ("."), użyj notacji ['Name.of.the.table']. | |
Ta specyfikacja jest wymagana dla wszystkich typów tabel z wyjątkiem usługi Cosmos DB, ponieważ w przypadku usługi Cosmos DB nazwa kolekcji jest częścią parametry połączenia. |
|||
SqlConnectionString | string |
✔️ | Parametry połączenia do serwera SQL. |
SqlDialect | string |
Wskazuje typ tabeli zewnętrznej Usługi Azure SQL. Program SQL Server jest domyślny. W polu MySQL określ wartość MySQL . W przypadku bazy danych PostgreSQL określ wartość PostgreSQL . W przypadku usługi Cosmos DB określ wartość CosmosDbSql . |
|
Właściwości | string |
Para właściwości klucz-wartość w formacie PropertyName = PropertyValue. Zobacz właściwości opcjonalne. |
Ostrzeżenie
Parametry połączenia i zapytania zawierające poufne informacje powinny zostać zaciemnione, aby zostały pominięte z dowolnego śledzenia usługi Kusto. Aby uzyskać więcej informacji, zobacz zaciemnione literały ciągu.
Właściwości opcjonalne
Właściwość | Type | Opis |
---|---|---|
folder |
string |
Folder tabeli. |
docString |
string |
Ciąg dokumentujący tabelę. |
firetriggers |
true /false |
Jeśli true program , nakazuje systemowi docelowemu uruchamianie wyzwalaczy INSERT zdefiniowanych w tabeli SQL. Wartość domyślna to false . (Aby uzyskać więcej informacji, zobacz BULK INSERT i System.Data.SqlClient.SqlBulkCopy) |
createifnotexists |
true / false |
Jeśli true docelowa tabela SQL zostanie utworzona, jeśli jeszcze nie istnieje. primarykey Właściwość musi być podana w tym przypadku, aby wskazać kolumnę wynikową, która jest kluczem podstawowym. Wartość domyślna to false . |
primarykey |
string |
Jeśli createifnotexists ma true wartość , nazwa wynikowej kolumny jest używana jako klucz podstawowy tabeli SQL, jeśli zostanie utworzona przez to polecenie. |
Uwierzytelnianie i autoryzacja
Aby wchodzić w interakcje z zewnętrzną tabelą Azure SQL, należy określić środki uwierzytelniania w ramach metody SqlConnectionString. Element SqlConnectionString definiuje zasób w celu uzyskania dostępu do informacji o uwierzytelnianiu i jego informacjach dotyczących uwierzytelniania.
Aby uzyskać więcej informacji, zobacz Metody uwierzytelniania tabel zewnętrznych usługi Azure SQL.
Uwaga
Jeśli tabela zewnętrzna jest używana do eksportu ciągłego, uwierzytelnianie musi być wykonywane za pomocą nazwy użytkownika/hasła lub tożsamości zarządzanych.
Przykłady
W poniższych przykładach pokazano, jak utworzyć każdy typ tabeli zewnętrznej usługi 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
)
Wyjście
TableName | TableType | Folder | DocString | Właściwości |
---|---|---|---|---|
MySqlExternalTable | Sql | Tabele zewnętrzne | Dokumenty | { "TargetEntityKind": "sqltable", "TargetEntityName": "MySqlTable", "TargetEntityConnectionString": "Server=tcp:myserver.database.windows.net,1433; Authentication=Active Directory Integrated; Katalog początkowy=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",
)