Azure SQL 외부 테이블 만들기 및 변경
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer
명령이 실행되는 데이터베이스에서 Azure SQL 외부 테이블을 만들거나 변경합니다.
참고 항목
- 테이블이 있는
.create
경우 오류와 함께 명령이 실패합니다. 기존 테이블을 사용.create-or-alter
하거나.alter
수정합니다. - 외부 Azure SQL 테이블의 스키마 변경은 지원되지 않습니다.
지원되는 Azure SQL 외부 테이블 형식
- SQL Server
- MySQL
- PostgreSQL
- Cosmos DB
사용 권한
.create
데이터베이스 사용자 이상의 권한이 필요하고 .alter
테이블 관리자 이상의 권한이 필요합니다.
.create-or-alter
.alter
또는 .create
관리 ID 인증을 사용하는 외부 테이블에는 데이터베이스 관리자 권한이 필요합니다. 이 메서드는 SQL Server 및 Cosmos DB 외부 테이블에 대해 지원됩니다.
구문
(.create
| .create-or-alter
.alter
| ) external
table
TableName(
스키마sql
=
)
kind
[ table
=
SqlTableName ] (
SqlConnectionString)
[with
(
[ sqlDialect
=
SqlDialect ] ,
[ 속성 ,
... ]])
구문 규칙에 대해 자세히 알아봅니다.
매개 변수
이름 | Type | 필수 | 설명 |
---|---|---|---|
TableName | string |
✔️ | 외부 테이블의 이름입니다. 이름은 엔터티 이름에 대한 규칙을 따라야 하며 외부 테이블은 동일한 데이터베이스의 일반 테이블과 같은 이름을 가질 수 없습니다. |
스키마 | string |
✔️ | 외부 데이터 스키마는 하나 이상의 열 이름과 데이터 형식의 쉼표로 구분된 목록으로, 각 항목은 ColumnName : ColumnType 형식을 따릅니다. |
SqlTableName | string |
데이터베이스 이름을 포함하지 않는 SQL 테이블의 이름입니다. 예를 들어 "db1"이 아닌 "MySqlTable"입니다. MySqlTable". 테이블 이름에 마침표(".")가 포함된 경우 ['Name.of.the.table'] 표기법을 사용합니다. | |
Cosmos DB를 제외한 모든 유형의 테이블에 이 사양이 필요하며, Cosmos DB의 경우 컬렉션 이름이 연결 문자열 일부입니다. |
|||
SqlConnectionString | string |
✔️ | SQL 서버에 대한 연결 문자열. |
SqlDialect | string |
Azure SQL 외부 테이블의 형식을 나타냅니다. SQL Server가 기본값입니다. MySQL의 경우 .MySQL PostgreSQL의 경우 .PostgreSQL Cosmos DB CosmosDbSql 의 경우 . |
|
속성 | string |
PropertyName PropertyValue= 형식의 키-값 속성 쌍입니다. 선택적 속성을 참조하세요. |
Warning
기밀 정보를 포함하는 연결 문자열 및 쿼리는 모든 Kusto 추적에서 생략되도록 난독 처리되어야 합니다. 자세한 내용은 난독 분석된 문자열 리터럴을 참조 하세요.
선택적 속성
속성 | Type | 설명 |
---|---|---|
folder |
string |
테이블의 폴더입니다. |
docString |
string |
테이블을 문서화하는 문자열입니다. |
firetriggers |
true /false |
이면 true SQL 테이블에 정의된 INSERT 트리거를 실행하도록 대상 시스템에 지시합니다. 기본값은 false 입니다. (자세한 내용은 를 참조하세요 .BULK INSERT 및 System.Data.SqlClient.SqlBulkCopy) |
createifnotexists |
true / false |
대상 SQL 테이블이 아직 없는 primarykey 경우 만들어지는 경우 true 기본 키인 결과 열을 나타내려면 이 경우 속성을 제공해야 합니다. 기본값은 false 입니다. |
primarykey |
string |
이 true 경우 createifnotexists 결과 열 이름은 이 명령으로 만든 경우 SQL 테이블의 기본 키로 사용됩니다. |
인증 및 권한 부여
외부 Azure SQL 테이블과 상호 작용하려면 인증 수단을 SqlConnectionString의 일부로 지정해야 합니다. SqlConnectionString은 액세스할 리소스와 해당 인증 정보를 정의합니다.
자세한 내용은 Azure SQL 외부 테이블 인증 방법을 참조 하세요.
참고 항목
외부 테이블을 연속 내보내기용으로 사용하는 경우 사용자 이름/암호 또는 관리 ID를 통해 인증을 수행해야 합니다.
예제
다음 예제에서는 각 유형의 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
)
출력
TableName | TableType | 폴더 | DocString | 속성 |
---|---|---|---|---|
MySqlExternalTable | Sql | ExternalTables | 문서 | { "TargetEntityKind": "sqltable'", "TargetEntityName": "MySqlTable", "TargetEntityConnectionString": "Server=tcp:myserver.database.windows.net,1433; Authentication=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",
)