Udostępnij za pośrednictwem


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

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

Uprawnienia

Wymaga .create co najmniej uprawnień użytkownika bazy danych i wymaga .alter co najmniej uprawnień administratora tabeli.

Do .create, .alterlub .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 trueprogram , 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 truedocelowa 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 truewartość , 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", 
)