이 자습서에서는 Azure Data Share를 사용하여 데이터 공유 초대를 수락하는 방법을 알아봅니다. 공유되는 데이터를 수신하는 방법 및 정기적으로 새로 고침 간격을 사용하도록 설정하여 항상 공유되는 데이터의 최신 스냅샷이 있는지 확인하는 방법을 알아봅니다.
- Azure Data Share 초대를 수락하는 방법
- Azure Data Share 계정 만들기
- 데이터의 대상 지정
- 예약된 새로 고침을 위해 데이터 공유에 대한 구독 생성하기
필수 조건
데이터 공유 초대를 수락하려면 먼저 아래에 나열된 일부 Azure 리소스를 만들어야 합니다.
데이터 공유 초대를 수락하기 전에 모든 필수 구성 요소가 완료되었는지 확인합니다.
스토리지 계정으로 데이터 받기
- Azure Storage 계정: 계정이 아직 없는 경우 Azure Storage 계정을 만들 수 있습니다.
-
Microsoft.Storage/storageAccounts/write에 있는 스토리지 계정에 쓸 수 있는 권한입니다. 이 권한은 스토리지 계정 기여자 역할에 있습니다.
-
Microsoft.Authorization/역할 할당/쓰기에 있는 스토리지 계정에 역할 할당을 추가할 수 있는 권한입니다. 이 권한은 소유자 역할에 있습니다.
SQL 기반 대상으로 데이터 수신
Azure SQL Database, Azure Synapse Analytics로 데이터를 수신하도록 선택하는 경우 다음은 필수 구성 요소 목록입니다.
- Azure SQL Database 또는 Azure Synapse Analytics(이전의 Azure SQL DW).
-
Microsoft.Sql/servers/databases/write에 있는 SQL Server의 데이터베이스에 쓸 수 있는 권한입니다. 이 권한은 기여자 역할에 있습니다.
- SQL 서버의 Microsoft Entra 관리자
- SQL Server 방화벽 액세스. 이 작업은 다음 단계를 통해 수행할 수 있습니다.
- Azure Portal의 SQL Server에서 방화벽 및 가상 네트워크로 이동합니다.
-
Azure 서비스 및 리소스가 이 서버에 액세스하도록 허용하려면예를 선택합니다.
-
+클라이언트 IP 추가를 선택합니다. 클라이언트 IP 주소는 변경될 수 있습니다. 다음에 Azure Portal에서 SQL 데이터를 공유할 때 이 프로세스를 반복해야 할 수 있습니다. IP 범위를 추가할 수도 있습니다.
-
저장을 선택합니다.
Azure Synapse Analytics(작업 영역) SQL 풀로 데이터를 수신하기 위한 필수 구성 요소
Azure Synapse Analytics(작업 영역) 전용 SQL 풀. 서버리스 SQL 풀로 데이터를 수신하는 것은 현재 지원되지 않습니다.
Microsoft.Synapse/workspaces/sqlPools/write에 있는 Synapse 작업 영역의 SQL 풀에 쓸 수 있는 권한입니다. 이 권한은 기여자 역할에 있습니다.
Data Share 리소스의 관리 ID가 Synapse 작업 영역 SQL 풀에 액세스할 수 있는 권한입니다. 이 작업은 다음 단계를 통해 수행할 수 있습니다.
Azure Portal에서 Synapse 작업 영역으로 이동합니다. 왼쪽 탐색에서 Microsoft Entra 관리자를 선택하고 자신을 Microsoft Entra 관리자로 설정합니다.
Synapse Studio를 열고 왼쪽 탐색 영역에서 관리를 선택합니다. 보안에서 액세스 제어 를 선택합니다.
SQL 관리자 또는 작업 영역 관리자 역할을 자신에게 할당합니다.
Synapse Studio의 왼쪽 탐색 영역에서 개발을 선택합니다. SQL 풀에서 다음 스크립트를 실행하여 Data Share 리소스 관리 ID를 'db_datareader, db_datawriter, db_ddladmin'으로 추가합니다.
create user "<share_acc_name>" from external provider;
exec sp_addrolemember db_datareader, "<share_acc_name>";
exec sp_addrolemember db_datawriter, "<share_acc_name>";
exec sp_addrolemember db_ddladmin, "<share_acc_name>";
<share_acc_name> Data Share 리소스의 이름입니다. Data Share 리소스를 아직 만들지 않은 경우 나중에 이 필수 구성 요소로 돌아갈 수 있습니다.
Synapse 작업 영역 방화벽 액세스. 이 작업은 다음 단계를 통해 수행할 수 있습니다.
- Azure Portal에서 Synapse 작업 영역으로 이동합니다. 왼쪽 탐색 창에서 방화벽을 선택합니다.
-
Azure 서비스 및 리소스가 이 작업 영역에 액세스할 수 있도록 허용하려면ON을 선택합니다.
-
+클라이언트 IP 추가를 선택합니다. 클라이언트 IP 주소는 변경될 수 있습니다. 다음에 Azure Portal에서 SQL 데이터를 공유할 때 이 프로세스를 반복해야 할 수 있습니다. IP 범위를 추가할 수도 있습니다.
-
저장을 선택합니다.
Azure Data Explorer 클러스터로 데이터를 수신합니다.
- 데이터 공급자의 데이터 탐색기 클러스터와 동일한 Azure 데이터 센터에 있는 Azure Data Explorer 클러스터: 아직 없는 경우 Azure Data Explorer 클러스터를 만들 수 있습니다. 데이터 공급자 클러스터의 Azure 데이터 센터를 모르는 경우 프로세스의 뒷부분에서 클러스터를 만들 수 있습니다.
-
Microsoft.Kusto/clusters/write에 있는 Azure Data Explorer 클러스터에 쓸 수 있는 권한입니다. 이 권한은 기여자 역할에 있습니다.
Azure Portal에 로그인
Azure Portal에 로그인합니다.
초대 열기
전자 메일 또는 Azure Portal에서 직접 초대를 열 수 있습니다.
전자 메일에서 초대를 열려면 받은 편지함에서 데이터 공급자의 초대를 확인합니다. 이 초대는 Microsoft Azure에서 yourdataprovider@___domain.com이(가) 보낸 Azure Data Share 초대라는 제목으로 보낸 것입니다.
초대 보기에서 선택하여 Azure에서 초대를 확인합니다.
Azure Portal에서 직접 초대를 열려면 Azure Portal에서 데이터 공유 초대를 검색합니다 . 이 작업을 수행하면 Data Share 초대 목록으로 이동합니다.
테넌트의 게스트 사용자인 경우 처음으로 Data Share 초대를 보기 전에 테넌트의 이메일 주소를 확인하라는 메시지가 표시됩니다. 확인되면 12개월 동안 유효합니다.
보려는 초대를 선택합니다.
먼저 PowerShell에 대한 환경을 준비합니다. PowerShell 명령을 로컬로 실행하거나 Azure Cloud Shell에서 Bash 환경을 사용할 수 있습니다.
- Azure PowerShell을 로컬로 사용하도록 선택한 경우:
- Azure Cloud Shell을 사용하도록 선택한 경우:
Connect-AzAccount 명령을 사용하여 Azure 계정에 연결합니다.
Connect-AzAccount
여러 구독이 있는 경우 Set-AzContext 명령을 실행하여 올바른 구독을 설정합니다.
Set-AzContext [SubscriptionID/SubscriptionName]
Get-AzDataShareReceivedInvitation 명령을 실행하여 현재 초대를 확인합니다.
Get-AzDataShareReceivedInvitation
다음 섹션에서 사용할 초대 ID를 복사합니다.
초대 수락
사용 약관을 포함하여 모든 필드를 검토 해야 합니다. 사용 약관에 동의하는 경우 동의함을 나타내기 위해 확인란을 선택해야 합니다.
대상 데이터 공유 계정에서 데이터 공유를 배포할 구독 및 리소스 그룹을 선택합니다.
데이터 공유 계정 필드의 경우 기존 Data Share 계정이 없는 경우 새로 만들기를 선택합니다. 그렇지 않은 경우 데이터 공유를 수락하려는 기존 데이터 공유 계정을 선택합니다.
받은 공유 이름 필드의 경우 데이터 제공에 지정된 기본값을 그대로 두거나 받은 공유의 새 이름을 지정할 수 있습니다.
사용 약관에 동의하고 받은 공유를 관리하기 위해 Data Share 계정을 지정했으면 수락을 선택하고 구성합니다. 공유 구독이 만들어집니다.
이 작업을 수행하면 Data Share 계정에서 받은 공유로 이동합니다.
초대를 수락하지 않으려면 [거부]를 선택합니다.
az datashare share-subscription create 명령을 사용하여 데이터 공유를 만듭니다.
az datashare share-subscription create --resource-group share-rg \
--name "fabrikamsolutions" --account-name FabrikamDataShareAccount \
--invitation-id 89abcdef-0123-4567-89ab-cdef01234567 \
--source-share-___location "East US 2"
New-AzDataShareSubscription 명령을 사용하여 데이터 공유를 만듭니다. InvitationId는 이전 단계에서 수집한 ID입니다.
New-AzDataShareSubscription -ResourceGroupName share-rg -AccountName FabrikamDataShareAccount -Name "Fabrikam Solutions" -InvitationId "89abcdef-0123-4567-89ab-cdef01234567"
아래 단계에 따라 데이터를 받을 위치를 구성합니다.
데이터 세트 탭을 선택합니다. 대상을 할당하려는 데이터 세트 옆의 확인란을 선택합니다. 대상 데이터 저장소 를 선택하려면 + 대상에 매핑 을 선택합니다.
데이터를 배치할 대상 데이터 저장소 형식을 선택합니다. 경로와 이름이 같은 대상 데이터 저장소의 모든 데이터 파일 또는 테이블을 덮어씁니다. Azure SQL Database 또는 Azure Synapse Analytics(이전의 Azure SQL DW)로 데이터를 수신하는 경우 데이터 공유가 내 대신 위의 '사용자 만들기' 스크립트를 실행하도록 허용 확인란을 선택합니다.
현재 위치 공유의 경우 지정된 위치에서 데이터 저장소를 선택합니다. 위치는 데이터 공급자의 원본 데이터 저장소가 있는 Azure 데이터 센터입니다. 데이터 세트가 매핑되면 대상 경로의 링크를 따라 데이터에 액세스할 수 있습니다.
스냅샷 기반 공유의 경우 데이터 공급자가 데이터에 대한 정기적인 업데이트를 제공하기 위해 스냅샷 일정을 만든 경우 스냅샷 일정 탭을 선택하여 스냅샷 일정을 사용하도록 설정할 수도 있습니다. 스냅샷 일정 옆의 확인란을 선택하고 + 사용을 선택합니다. 첫 번째 예약된 스냅샷은 예약 시간의 1분 이내에 시작되고 후속 스냅샷은 예약 시간(초) 이내에 시작됩니다.
복사한 파일의 메타데이터는 실행 후 유지되지 않습니다. 이것은 의도적인 것입니다.
이러한 명령을 사용하여 데이터를 받을 위치를 구성합니다.
az datashare consumer-source-data-set list 명령을 실행하여 데이터 세트 ID를 가져옵니다.
az datashare consumer-source-data-set list --resource-group "share-rg" \
--account-name "FabrikamDataShareAccount" \
--share-subscription-name "fabrikamsolutions" \
스토리지 계정이 필요한 경우 az storage account create 명령을 실행하여 이 Data Share에 대한 스토리지 계정을 만듭니다.
az storage account create --resource-group "share-rg" --name "FabrikamDataShareStorageAccount" \
az storage account show 명령을 사용하여 스토리지 계정 ID를 가져옵니다.
az storage account show --resource-group "share-rg" --name "FabrikamDataShareStorageAccount" \
--query "id"
다음 명령을 사용하여 계정 주체 ID를 가져옵니다.
az datashare account show --resource-group "share-rg" --name "FabrikamDataShareAccount" \
--query "identity.principalId"
az role assignment create 명령을 사용하여 계정 주체 ID 및 스토리지 계정 ID를 사용하여 계정 주체에 대한 역할 할당을 만듭니다.
az role assignment create --role "Contributor" \
--assignee-object-id aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
--assignee-principal-type ServicePrincipal --scope "your\storage\account\id\path"
1단계의 데이터 집합 ID를 기반으로 매핑에 대한 변수를 만듭니다.
$mapping='{\"data_set_id\":\"' + $dataset_id + '\",\"container_name\":\"newcontainer\",
\"storage_account_name\":\"datashareconsumersa\",\"kind\":\"BlobFolder\",\"prefix\":\"consumer\"}'
az datashare data-set-mapping create 명령을 사용하여 데이터 세트 매핑을 만듭니다.
az datashare data-set-mapping create --account-name "FabrikamDataShareAccount" \
--data-set-mapping-name "datasetmapping" --resource-group "share-rg" \
--share-subscription-name "fabrikamsolutions" --blob-folder-data-set-mapping $mapping
az datashare share-subscription synchronize 명령을 실행하여 데이터 세트 동기화를 시작합니다.
az datashare share-subscription synchronize \
--resource-group "share-rg" --account-name "FabrikamDataShareAccount" \
--name "Fabrikam Solutions" --synchronization-mode "Incremental" \
az datashare share-subscription list-synchronization 명령을 실행하여 동기화 목록을 확인합니다.
az datashare share-subscription list-synchronization \
--resource-group "share-rg" --account-name "FabrikamDataShareAccount" \
--share-subscription-name "Fabrikam Solutions" \
az datashare share-subscription list-source-share-synchronization-setting 명령을 사용하여 공유에 설정된 동기화 설정을 확인합니다.
az datashare share-subscription list-source-share-synchronization-setting \
--resource-group "share-rg" --account-name "FabrikamDataShareAccount" \
--share-subscription-name "Fabrikam Solutions"
이러한 명령을 사용하여 데이터를 받을 위치를 구성합니다.
Get-AzDataShareSourceDataSet 명령을 실행하여 데이터 집합 ID를 가져옵니다.
Get-AzDataShareSourceDataSet -ResourceGroupName "share-rg" -AccountName "FabrikamDataShareAccount" -ShareSubscriptionName "fabrikamsolutions"
공유 데이터를 저장할 위치가 아직 없는 경우 다음 단계에 따라 스토리지 계정을 만들 수 있습니다. 스토리지가 이미 있는 경우 다음 단계로 건너뛸 수 있습니다.
New-AzStorageAccount 명령을 실행하여 Azure Storage 계정을 만듭니다.
$storageAccount = New-AzStorageAccount -ResourceGroupName "share-rg" -AccountName FabrikamStorageAccount -Location "East US 2" -SkuName Standard_GRS
$ctx = $storageAccount.Context
New-AzStorageContainer 명령을 실행하여 데이터를 저장할 새 Azure Storage 계정에 컨테이너를 만듭니다.
$containerName = "StorageContainer"
New-AzStorageContainer -Name $containerName -Context $ctx -Permission blob
Set-AzStorageBlobContent 명령을 실행하여 파일을 업로드합니다. 다음 예제에서는 로컬 메모리의 D:\testFiles 폴더에서 만든 컨테이너에textfile.csv업로드합니다.
Set-AzStorageBlobContent -File "D:\testFiles\textfile.csv" -Container $containerName -Blob "textfile.csv" -Context $ctx
PowerShell에서 Azure Storage를 사용하는 방법에 대한 자세한 내용은 이 Azure Storage PowerShell 가이드를 따르세요.
Get-AzStorageAccount 명령을 사용하여 스토리지 계정 ID를 가져옵니다.
Get-AzStorageAccount -ResourceGroupName "share-rg" -Name FabrikamStorageAccount
첫 번째 단계의 데이터 집합 ID를 사용한 다음 , New-AzDataShareDataSetMapping 명령을 실행하여 데이터 세트 매핑을 만듭니다.
New-AzDataShareDataSetMapping -ResourceGroupName "share-rg" -AccountName "FabrikamDataShareAccount" -ShareSubscriptionName "fabrikamsolutions" -Name "Fabrikam Solutions" -StorageAccountResourceId "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" -DataSetId "0123abcd-ef01-2345-6789-abcdef012345" -Container "StorageContainer"
Start-AzDataShareSubscriptionSynchronization 명령을 실행하여 데이터 세트 동기화를 시작합니다.
Start-AzDataShareSubscriptionSynchronization -ResourceGroupName "share-rg" -AccountName "FabrikamDataShareAccount" -ShareSubscriptionName "fabrikamsolutions" -SynchronizationMode "Incremental"
Get-AzDataShareSubscriptionSynchronization 명령을 실행하여 동기화 목록을 확인합니다.
Get-AzDataShareSubscriptionSynchronization -ResourceGroupName "share-rg" -AccountName "FabrikamDataShareAccount" -ShareSubscriptionName "fabrikamsolutions"
Get-AzDataShareSubscriptionSynchronizationDetail 명령을 사용하여 공유에 설정된 동기화 설정을 확인합니다.
Get-AzDataShareSubscriptionSynchronizationDetail -ResourceGroupName "share-rg" -AccountName "FabrikamDataShareAccount" -ShareSubscriptionName "fabrikamsolutions" -SynchronizationId "a6ee5c8d-0ce0-485e-b2f2-966b187dc6c7"
스냅샷 트리거
이러한 단계는 스냅샷 기반 공유에만 적용 됩니다.
세부 정보 탭과 트리거 스냅샷을 선택하여 스냅샷을 트리거할 수 있습니다. 여기에서 데이터의 전체 또는 증분 스냅샷을 트리거할 수 있습니다. 데이터 공급자로부터 데이터를 처음 받는 경우 전체 복사본을 선택합니다.
마지막 실행 상태가 성공하면 대상 데이터 저장소로 이동하여 수신된 데이터를 봅니다.
데이터 세트를 선택하고 대상 경로에서 링크를 선택합니다.
az datashare trigger create 명령을 실행하여 스냅샷을 트리거합니다.
az datashare trigger create --account-name "FabrikamDataShareAccount" --resource-group "share-rg" --share-subscription-name "Fabrikam Solutions" --scheduled-trigger recurrence-interval="Day" synchronization-mode="Incremental" synchronization-time="2018-11-14T04:47:52.9614956Z" --name "Trigger1"
이러한 단계는 스냅샷 기반 공유에만 적용 됩니다.
New-AzDataShareTrigger 명령을 실행하여 스냅샷을 트리거합니다.
New-AzDataShareTrigger -ResourceGroupName "share-rg" -AccountName "FabrikamDataShareAccount" -Name "Fabrikam Solutions" -RecurrenceInterval "Day" -SynchronizationTime "2018-11-14T04:47:52.9614956Z"
기록 보기
이 단계는 스냅샷 기반 공유에만 적용됩니다. 스냅샷의 기록을 보려면 기록 탭을 선택합니다. 여기서는 지난 30일 동안 생성된 모든 스냅샷의 기록을 찾을 수 있습니다.
자원을 정리하세요
리소스가 더 이상 필요하지 않은 경우 데이터 공유 개요 페이지로 이동하고 삭제 를 선택하여 제거합니다.
다음 단계
이 자습서에서는 Azure Data Share를 수락하고 받는 방법을 알아보았습니다. Azure Data Share 개념에 대해 자세히 알아보려면 Azure Data Share 용어를 계속 진행하세요.