다음을 통해 공유


Azure SQL 외부 테이블 만들기 및 변경

적용 대상: ✅Microsoft Fabric✅Azure Data Explorer

명령이 실행되는 데이터베이스에서 Azure SQL 외부 테이블을 만들거나 변경합니다.

참고 항목

  • 테이블이 있는 .create 경우 오류와 함께 명령이 실패합니다. 기존 테이블을 사용 .create-or-alter 하거나 .alter 수정합니다.
  • 외부 Azure SQL 테이블의 스키마 변경은 지원되지 않습니다.

지원되는 Azure SQL 외부 테이블 형식

  1. SQL Server
  2. MySQL
  3. PostgreSQL
  4. 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 이면 trueSQL 테이블에 정의된 INSERT 트리거를 실행하도록 대상 시스템에 지시합니다. 기본값은 false입니다. (자세한 내용은 를 참조하세요 .BULK INSERTSystem.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", 
)