Vytváření a změny externích tabulek Azure SQL
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer
Vytvoří nebo změní externí tabulku Azure SQL v databázi, ve které se příkaz spustí.
Poznámka:
- Pokud tabulka existuje,
.create
příkaz selže s chybou. Použijte.create-or-alter
nebo.alter
upravte existující tabulky. - Změna schématu externí tabulky Azure SQL se nepodporuje.
Podporované typy externích tabulek Azure SQL
- SQL Server
- MySQL
- PostgreSQL
- Cosmos DB
Oprávnění
Pokud chcete .create
vyžadovat aspoň oprávnění uživatele databáze a .alter
vyžadovat alespoň oprávnění správce tabulky.
Pro .create
, .alter
nebo .create-or-alter
externí tabulku používající ověřování spravované identity vyžaduje oprávnění správce databáze. Tato metoda je podporovaná pro externí tabulky SQL Serveru a Cosmos DB.
Syntaxe
(.create
| .alter
.create-or-alter
| ) external
table
TableName(
Schemasql
=
)
kind
[ table
=
SqlTableName ] (
SqlConnectionString)
[with
(
[ sqlDialect
=
SqlDialect ] ,
[ Vlastnost ,
... ]])
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
TableName | string |
✔️ | Název externí tabulky. Název musí dodržovat pravidla pro názvy entit a externí tabulka nemůže mít stejný název jako běžná tabulka ve stejné databázi. |
Schéma | string |
✔️ | Schéma externích dat je čárkami oddělený seznam jednoho nebo více názvů sloupců a datových typů, kde každá položka má formát: ColumnName : ColumnType. |
SqlTableName | string |
Název tabulky SQL neobsahuje název databáze. Například "MySqlTable" a ne "db1". MySqlTable. Pokud název tabulky obsahuje tečku ("."), použijte notaci ['Name.of.the.table']. | |
Tato specifikace se vyžaduje pro všechny typy tabulek s výjimkou Cosmos DB, protože název kolekce je součástí připojovací řetězec. |
|||
SqlConnectionString | string |
✔️ | Připojovací řetězec na SQL Server. |
SqlDialect | string |
Označuje typ externí tabulky Azure SQL. SQL Server je výchozí. Pro MySQL zadejte MySQL . Pro PostgreSQL zadejte PostgreSQL . Pro Cosmos DB zadejte CosmosDbSql . |
|
Vlastnost | string |
Dvojice vlastností klíč-hodnota ve formátu PropertyName = PropertyValue. Viz volitelné vlastnosti. |
Upozorňující
Připojovací řetězce a dotazy, které obsahují důvěrné informace, by měly být obfuskovány, aby se vynechaly z jakéhokoli trasování Kusto. Další informace najdete v obfuskovaných řetězcových literálech.
Volitelné vlastnosti
Vlastnost | Type | Popis |
---|---|---|
folder |
string |
Složka tabulky. |
docString |
string |
Řetězec dokumentující tabulku. |
firetriggers |
true /false |
Pokud true , dává cílovému systému pokyn, aby aktivoval triggery INSERT definované v tabulce SQL. Výchozí hodnota je false . (Další informace najdete v tématu BULK INSERT a System.Data.SqlClient.SqlBulkCopy) |
createifnotexists |
true / false |
Pokud true je cílová tabulka SQL vytvořená, pokud ještě neexistuje; primarykey vlastnost musí být v tomto případě uvedena, aby bylo možné určit výsledný sloupec, který je primárním klíčem. Výchozí hodnota je false . |
primarykey |
string |
Pokud createifnotexists ano true , výsledný název sloupce se použije jako primární klíč tabulky SQL, pokud je vytvořen tímto příkazem. |
Ověřování a autorizace
Pokud chcete pracovat s externí tabulkou Azure SQL, je nutné zadat ověřovací prostředky jako součást sqlConnectionString. SqlConnectionString definuje prostředek pro přístup a jeho ověřovací informace.
Další informace najdete v tématu Metody ověřování externí tabulky Azure SQL.
Poznámka:
Pokud se externí tabulka používá k průběžnému exportu, musí se ověřování provádět pomocí uživatelského jména nebo hesla nebo spravovaných identit.
Příklady
Následující příklady ukazují, jak vytvořit jednotlivé typy externí tabulky 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
)
Výstup
TableName | TableType | Složka | DocString | Vlastnosti |
---|---|---|---|---|
MySqlExternalTable | Sql | Externí tabulky | Dokumenty | { "TargetEntityKind": "sqltable", "TargetEntityName": "MySqlTable", "TargetEntityConnectionString": "Server=tcp:myserver.database.windows.net,1433; Authentication=Integrovaná služba Active Directory; 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",
)