Создание и изменение внешних таблиц SQL Azure
Область применения: ✅Microsoft Fabric✅Azure Data Explorer
Создает или изменяет внешнюю таблицу SQL Azure в базе данных, в которой выполняется команда.
Примечание.
- Если таблица существует,
.create
команда завершится ошибкой. Используйте.create-or-alter
или.alter
измените существующие таблицы. - Изменение схемы внешней таблицы SQL Azure не поддерживается.
Поддерживаемые типы внешних таблиц SQL Azure
- SQL Server
- MySQL
- PostgreSQL
- Cosmos DB
Разрешения
Чтобы .create
требовать по крайней мере разрешения пользователя базы данных и .alter
требовать по крайней мере разрешения администратора таблицы.
Для .create
, .alter
или .create-or-alter
внешней таблицы с использованием проверки подлинности управляемого удостоверения требуются разрешения администратора базы данных. Этот метод поддерживается для внешних таблиц SQL Server и Cosmos DB.
Синтаксис
(.create
| .create-or-alter
.alter
| ) external
table
Схемаsql
kind
)
=
tableName (
[ table
=
SqlTableName ] (
SqlConnectionString)
[with
(
sqlDialect
=
SqlDialect ] ,
[ свойство ,
... ]])
Дополнительные сведения о соглашениях синтаксиса.
Параметры
Имя (название) | Type | Обязательно | Описание |
---|---|---|---|
TableName | string |
✔️ | Имя внешней таблицы. Имя должно соответствовать правилам имен сущностей, а внешняя таблица не может иметь то же имя, что и обычная таблица в той же базе данных. |
Схема | string |
✔️ | Схема внешних данных представляет собой разделенный запятыми список одного или нескольких имен столбцов и типов данных, где каждый элемент соответствует формату ColumnName : ColumnType. |
SqlTableName | string |
Имя таблицы SQL, не включая имя базы данных. Например, "MySqlTable" и не "db1". MySqlTable". Если имя таблицы содержит точку ("."), используйте нотацию ['Name.of.the.table'] . | |
Эта спецификация необходима для всех типов таблиц, кроме Cosmos DB, так как для Cosmos DB имя коллекции является частью строка подключения. |
|||
SqlConnectionString | 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, необходимо указать средства проверки подлинности в составе 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
)
Выходные данные
TableName | TableType | Папка | DocString | Свойства |
---|---|---|---|---|
MySqlExternalTable | SQL | ExternalTables | Документация | { 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",
)