다음을 통해 공유


임시 자격 증명으로 COPY INTO를 사용하여 데이터 로드

Azure Databricks 클러스터 또는 SQL Warehouse에 원본 파일을 읽을 수 있는 권한이 없는 경우 임시 자격 증명을 사용하여 외부 클라우드 개체 스토리지의 데이터에 액세스하고 파일을 Delta Lake 테이블로 로드할 수 있습니다.

조직에서 클라우드 보안을 관리하는 방법에 따라 클라우드 관리자 또는 전원 사용자에게 자격 증명을 제공하도록 요청해야 할 수 있습니다. 자세한 내용은 수집을 위한 임시 자격 증명 생성을 참조 하세요.

데이터에 액세스하기 위한 임시 자격 증명 또는 암호화 옵션 지정

참고 항목

자격 증명 및 암호화 옵션은 Databricks Runtime 10.4 LTS 이상에서 사용할 수 있습니다.

COPY INTO 지원:

  • ADLS Gen2 및 Azure Blob Storage에서 데이터를 읽을 수 있는 Azure SAS 토큰입니다. Azure Blob Storage 임시 토큰은 컨테이너 수준에 있는 반면 ADLS Gen2 토큰은 컨테이너 수준 외에도 디렉터리 수준에 있을 수 있습니다. Databricks는 가능한 경우 디렉터리 수준 SAS 토큰을 사용할 것을 권장합니다. SAS 토큰에는 "읽기", "목록" 및 "권한" 권한이 있어야 합니다.
  • AWS S3에서 데이터를 읽을 수 있는 AWS STS 토큰. 토큰에는 “s3:GetObject*”, “s3:ListBucket”, “s3:GetBucketLocation” 권한이 있어야 합니다.

Warning

임시 자격 증명의 오용 또는 노출을 방지하기 위해 Databricks는 작업을 완료할 수 있을 만큼만 만료 기간을 설정하는 것이 좋습니다.

COPY INTO는 AWS S3에서 암호화된 데이터를 로드하도록 지원합니다. 암호화된 데이터를 로드하려면 암호화 형식과 데이터 암호를 해독하는 키를 제공합니다.

임시 자격 증명을 사용하여 데이터 로드

다음 예는 원본 데이터에 대한 액세스를 제공하기 위해 임시 자격 증명을 사용하여 S3 및 ADLS Gen2에서 데이터를 로드합니다.

COPY INTO my_json_data
FROM 's3://my-bucket/jsonData' WITH (
  CREDENTIAL (AWS_ACCESS_KEY = '...', AWS_SECRET_KEY = '...', AWS_SESSION_TOKEN = '...')
)
FILEFORMAT = JSON

COPY INTO my_json_data
FROM 'abfss://container@storageAccount.dfs.core.windows.net/jsonData' WITH (
  CREDENTIAL (AZURE_SAS_TOKEN = '...')
)
FILEFORMAT = JSON

암호화된 데이터 로드

다음 예에서는 고객 제공 암호화 키를 사용하여 S3에서 데이터를 로드합니다.

COPY INTO my_json_data
FROM 's3://my-bucket/jsonData' WITH (
  ENCRYPTION (TYPE = 'AWS_SSE_C', MASTER_KEY = '...')
)
FILEFORMAT = JSON

원본 및 대상에 대한 자격 증명을 사용하여 JSON 데이터 로드

다음 예제에서는 JSON 데이터를 Azure의 파일에서 my_json_data라는 외부 델타 테이블로 로드합니다. 이 테이블은 COPY INTO가 실행되기 전에 만들어야 합니다. 이 명령은 하나의 기존 자격 증명을 사용하여 외부 Delta 테이블에 쓰고 다른 자격 증명을 사용하여 ABFSS 위치에서 읽습니다.

COPY INTO my_json_data WITH (CREDENTIAL target_credential)
  FROM 'abfss://container@storageAccount.dfs.core.windows.net/base/path' WITH (CREDENTIAL source_credential)
  FILEFORMAT = JSON
  FILES = ('f.json')