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

Переключение служб с помощью раскрывающегося списка версий . Дополнительные сведения о навигации.
Область применения: ✅ Microsoft Fabric ✅ Azure Data Explorer

Создает или изменяет внешнюю таблицу 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 | .alter | .create-or-alter) externaltable [ ( SqlTableName ] )kind= [sqltable= ] ( [ ) ... ]]with

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

Параметры

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

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

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

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

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

Свойство Тип Описание
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, необходимо указать средства проверки подлинности в составе SqlConnectionString. SqlConnectionString определяет ресурс для доступа и сведений о проверке подлинности.

Дополнительные сведения см. в статье о методах проверки подлинности внешней таблицы 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
)  

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

ИмяТаблицы ТипТаблицы Папка Строка документа Свойства
MySqlExternalTable SQL ВнешниеTables Документация {}
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", 
)