개방형 미러링 랜딩 존 요구 사항 및 형식
이 문서에서는 Microsoft Fabric에서 열린 미러링에 대한 랜딩 존 및 테이블/열 작업 요구 사항을 자세히 설명합니다.
Important
이 기능은 프리뷰로 제공됩니다.
패브릭 포털 또는 패브릭 작업 영역의 공용 API를 통해 열린 미러된 데이터베이스를 만든 후에는 미러된 데이터베이스 항목의 홈페이지에 있는 OneLake에서 방문 영역 URL을 가져옵니다. 이 랜딩 존은 애플리케이션이 Parquet 형식(압축되지 않은, Snappy, GZIP, ZSTD)으로 메타데이터 파일 및 토지 데이터를 만드는 위치입니다.
랜딩 존
모든 미러된 데이터베이스에 대해 OneLake에는 메타데이터 및 델타 테이블에 대한 고유한 스토리지 위치가 있습니다. 오픈 미러링에서는 애플리케이션이 메타데이터 파일을 만들고 OneLake에 데이터를 푸시할 수 있는 랜딩 존 폴더를 제공합니다. 미러링에서는 랜딩 존에서 이러한 파일을 모니터링하고 추가된 새 테이블 및 데이터에 대한 폴더를 읽습니다.
예를 들어 랜딩 존에 만들 테이블(Table A
, Table B
, Table C
)이 있는 경우 다음 URL과 같은 폴더를 만듭니다.
https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/LandingZone/TableA
https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/LandingZone/TableB
https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/LandingZone/TableC
랜딩 존의 메타데이터 파일
모든 테이블 폴더에는 _metadata.json
파일이 포함되어야 합니다.
이 테이블 메타데이터 파일에는 현재 고유한 키 열만 지정하는 JSON 레코드가 포함되어 있습니다 keyColumns
.
예를 들어 열을 C1
선언하고 C2
테이블에 대한 복합 고유 키로 선언하려면 다음을 수행합니다.
{
"keyColumns" : ["C1", "C2"]
}
지정하거나 _metadata.json
지정하지 않으면 keyColumns
업데이트/삭제가 불가능합니다. 이 파일은 언제든지 추가할 수 있지만 추가한 후에는 keyColumns
변경할 수 없습니다.
랜딩 존의 데이터 파일 및 형식
오픈 미러링에서는 압축 여부에 관계없이 Parquet을 랜딩 존 파일 형식으로 지원합니다. 지원되는 압축 형식에는 Snappy, GZIP 및 ZSTD가 포함됩니다.
랜딩 존에 기록된 모든 Parquet 파일의 형식은 다음과 같습니다.
<RowMarker><DataColumns>
RowMarker
: 열 이름은 (앞과 뒤rowMarker
의 두 밑줄 포함)입니다__rowMarker__
.RowMaker
값:0
INSERT의 경우1
FOR UPDATE2
FOR DELETE4
UPSERT의 경우
행 순서: 파일의 모든 로그는 트랜잭션에 적용된 대로 자연스러운 순서여야 합니다. 이는 동일한 행이 여러 번 업데이트되는 데 중요합니다. 열려 있는 미러링 파일의 순서를 사용 하 여 변경 내용을 적용 합니다.
파일 순서: 파일을 단조적으로 증가하는 숫자로 추가해야 합니다.
파일 이름: 파일 이름은 첫 번째 파일 및 두 번째 파일과
00000000000000000002.parquet
같이00000000000000000001.parquet
20자리 숫자입니다. 파일 이름은 연속 번호여야 합니다. 파일은 미러링 서비스에서 자동으로 삭제되지만 게시자 시스템에서 참조하여 다음 파일을 순서대로 추가할 수 있도록 마지막 파일이 남습니다.
초기 로드
열려 있는 미러된 데이터베이스에 데이터를 처음 로드하는 경우 모든 행에 INSERT가 행 표식으로 있어야 합니다. 파일에 데이터가 없으면 RowMarker
미러링에서 전체 파일을 INSERT로 처리합니다.
증분 변경
열린 미러링에서는 증분 변경 내용을 순서대로 읽고 대상 델타 테이블에 적용합니다. 순서는 변경 로그 및 파일 순서에 암시적입니다.
업데이트된 행에는 모든 열이 있는 전체 행 데이터가 포함되어야 합니다.
다음은 E0001을 Redmond에서 Bellevue로 변경하는 EmployeeLocation
EmployeeID
행 기록의 몇 가지 샘플 parquet 데이터입니다. 이 시나리오에서는 열이 EmployeeID
랜딩 존의 메타데이터 파일에서 키 열로 표시되었습니다.
__rowMarker__,EmployeeID,EmployeeLocation
0,E0001,Redmond
0,E0002,Redmond
0,E0003,Redmond
1,E0001,Bellevue
키 열이 업데이트되는 경우 이전 키 열의 DELETE와 새 키 및 데이터가 있는 INSERT 행으로 표시되어야 합니다. 예를 들어 E0001의 RowMarker
고유 식별자를 EmployeeID
E0002로 변경하는 행 기록입니다. DELETE 행에 대한 모든 열 데이터를 제공할 필요는 없으며 키 열만 제공할 필요가 없습니다.
__rowMarker__,EmployeeID,EmployeeLocation
0,E0001,Bellevue
2,E0001,NULL
0,E0002,Bellevue
테이블 작업
오픈 미러링에서는 테이블 추가, 삭제 및 이름 바꾸기와 같은 테이블 작업을 지원합니다.
표 추가
오픈 미러링은 애플리케이션에서 랜딩 존에 추가된 테이블을 선택합니다. 모든 반복에서 새 테이블에 대한 미러링 검색을 엽니다.
테이블 삭제
열린 미러링에서는 폴더 이름을 추적합니다. 테이블 폴더가 삭제되면 열려 있는 미러링에서 테이블을 미러된 데이터베이스에 삭제합니다.
폴더를 다시 만들면 열린 미러링에서 테이블을 삭제하고 폴더의 ETag를 추적하여 폴더의 새 데이터로 다시 만듭니다.
테이블을 삭제하려고 할 때 폴더 삭제를 시도할 수 있지만 열려 있는 미러링이 폴더의 데이터를 계속 사용하고 있어 게시자에 대한 삭제 실패가 발생할 수 있습니다.
테이블 이름 바꾸기
테이블 이름을 바꾸려면 초기 및 증분 데이터를 사용하여 폴더를 삭제하고 다시 만듭니다. 이름이 바뀐 테이블에 데이터를 다시 채워야 합니다.
스키마
스키마 폴더 내에서 테이블 경로를 지정할 수 있습니다. 스키마 방문 영역에는 <schemaname>.schema
폴더 이름이 있어야 합니다. 여러 스키마가 있을 수 있으며 스키마에 여러 테이블이 있을 수 있습니다.
예를 들어 랜딩 존에 만들 스키마(Schema1
, Schema2
) 및 테이블(Table A
, Table B
, Table C
)이 있는 경우 OneLake에서 다음 경로와 같은 폴더를 만듭니다.
https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/LandingZone/Schema1.schema/TableA
https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/LandingZone/Schema1.schema/TableB
https://onelake.dfs.fabric.microsoft.com/<workspace id>/<mirrored database id>/LandingZone/Schema2.schema/TableC
테이블 열 및 열 작업
열 형식
- 랜딩 존에서 간단한 parquet 유형이 지원됩니다.
- 복합 형식은 JSON 문자열로 작성해야 합니다.
- 지리, 이미지 등과 같은 이진 복합 형식은 랜딩 존에 이진 형식으로 저장할 수 있습니다.
열 추가
parquet 파일에 새 열이 추가되면 열이 델타 테이블에 추가됩니다.
열 삭제
새 로그 파일에서 열을 삭제한 경우 새 행의 해당 열에 대한 미러링 저장소 NULL
를 열고 이전 행에는 데이터에 있는 열이 있습니다. 열을 삭제하려면 테이블을 삭제하고 다시 방문 영역에 테이블 폴더를 만들면 새 스키마와 데이터가 있는 Delta 테이블을 다시 만들 수 있습니다.
열린 미러링에서는 항상 이전 버전의 추가된 데이터의 모든 열을 통합합니다. 열을 제거하려면 테이블/폴더를 다시 만듭니다.
열 형식 변경
열 형식을 변경하려면 새 열 형식을 사용하여 초기 및 증분 데이터로 폴더를 삭제하고 다시 만듭니다. 테이블을 다시 만들지 않고 새 열 형식을 제공하면 오류가 발생하며 해당 테이블에 대한 복제가 중지됩니다. 테이블 폴더가 다시 만들어지면 새 데이터 및 스키마를 사용하여 복제가 다시 시작됩니다.
이름 바꾸기 열
열 이름을 바꾸려면 테이블 폴더를 삭제하고 모든 데이터와 새 열 이름을 사용하여 폴더를 다시 만듭니다.