Создание и изменение внешних таблиц SQL Azure

Создает или изменяет внешнюю таблицу SQL Azure в базе данных, в которой выполняется команда.

Примечание.

  • Если таблица существует, .create команда завершится ошибкой. Используйте .create-or-alter или .alter измените существующие таблицы.
  • Изменение схемы внешней таблицы SQL Azure не поддерживается.

Поддерживаемые типы внешних таблиц SQL Azure

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

Разрешения

Чтобы .create требовать по крайней мере разрешения пользователя базы данных и .alter требовать по крайней мере разрешения таблицы Администратор.

Для .create, .alterили .create-or-alter внешней таблицы с использованием проверки подлинности управляемого удостоверения требуются разрешения базы данных Администратор. Этот метод поддерживается для внешних таблиц SQL Server и Cosmos DB.

Синтаксис

(.create | .create-or-alter.alter | ) externaltableСхемаkind=)sql tableName([ table=SqlTableName ] (Sql Подключение ionString) [=with(sqlDialect SqlDialect ] , [ Свойство, ... ]])

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
TableName string ✔️ Имя внешней таблицы. Имя должно соответствовать правилам имен сущностей, а внешняя таблица не может иметь то же имя, что и обычная таблица в той же базе данных.
Схема string ✔️ Схема внешних данных представляет собой разделенный запятыми список одного или нескольких имен столбцов и типов данных, где каждый элемент соответствует формату ColumnName:ColumnType.
SqlTableName string Имя таблицы SQL, не включая имя базы данных. Например, "MySqlTable" и не "db1". MySqlTable". Если имя таблицы содержит точку ("."), используйте нотацию ['Name.of.the.table'] .


Эта спецификация необходима для всех типов таблиц, кроме Cosmos DB, так как для Cosmos DB имя коллекции является частью строка подключения.
Sql Подключение ionString string ✔️ Строка подключения на СЕРВЕР SQL Server.
SqlDialect string Указывает тип внешней таблицы SQL Azure. SQL Server — это значение по умолчанию. Для MySQL укажите MySQL. Для PostgreSQL укажите PostgreSQL. Для Cosmos DB укажите CosmosDbSql.
Свойство string Пара свойств key-value в формате PropertyName=PropertyValue. См . необязательные свойства.

Предупреждение

Подключение строки и запросы, содержащие конфиденциальную информацию, должны быть замечены, чтобы они были опущены из любой трассировки Kusto. Дополнительные сведения см. в скрытых строковых литералах.

Необязательные свойства

Свойство Type Описание
folder string Папка таблицы.
docString string Строка, документируя таблицу.
firetriggers true/false Если true, указывает целевой системе запускать триггеры INSERT, определенные в таблице SQL. Значение по умолчанию — false. (Дополнительные сведения см. в разделе BULK INSERT и System.Data.SqlClient.SqlBulkCopy)
createifnotexists true/ false Если trueцелевая таблица SQL создается, если она еще не существует; primarykey свойство должно быть предоставлено в этом случае, чтобы указать столбец результатов, который является первичным ключом. Значение по умолчанию — false.
primarykey string Если createifnotexists это trueтак, результирующее имя столбца используется в качестве первичного ключа таблицы SQL, если он создан этой командой.

Проверка подлинности и авторизация

Чтобы взаимодействовать с внешней таблицей SQL Azure из Azure Data Обозреватель, необходимо указать средства проверки подлинности в составе SQL Подключение ionString. Sql Подключение ionString определяет ресурс для доступа и сведений о проверке подлинности.

Дополнительные сведения см. в статье о методах проверки подлинности внешней таблицы SQL Azure.

Примечание.

Если внешняя таблица используется для непрерывного экспорта, проверка подлинности должна выполняться с помощью имени пользователя или пароля или управляемых удостоверений.

Примеры

В следующих примерах показано, как создать каждую внешнюю таблицу SQL 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
)  

Выходные данные

TableName TableType Папка DocString Свойства
MySqlExternalTable SQL ExternalTables Документация {
TargetEntityKind: "sqltable",
TargetEntityName: MySqlTable,
"TargetEntity Подключение ionString": "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", 
)