Udostępnij za pośrednictwem


Tworzenie i zmienianie tabel zewnętrznych usługi Azure SQL

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 .alter wymaga co najmniej uprawnień Administracja tabeli.

Do .create, .alterlub .create-or-alter tabeli zewnętrznej przy użyciu uwierzytelniania tożsamości zarządzanej wymaga uprawnień database Administracja. 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 | ) externaltableTableName(Schemasql=)kind [ table=SqlTableName ] (Sql Połączenie ionString) [(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.
Sql Połączenie ionString 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

Połączenie ciągi i zapytania zawierające poufne informacje powinny być 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ą usługi Azure SQL z usługi Azure Data Explorer, należy określić środki uwierzytelniania w ramach metody Sql Połączenie ionString. Ciąg Sql Połączenie ionString definiuje zasób, aby uzyskać dostęp do informacji o uwierzytelnianiu i uzyskiwać do tego zasobu.

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",
"TargetEntity Połączenie ionString": "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", 
)