다음을 통해 공유


Google Cloud Storage에 커넥트

이 문서에서는 GCS(Google Cloud Storage)에 저장된 테이블과 데이터를 읽고 쓰도록 Azure Databricks에서 연결을 구성하는 방법을 설명합니다.

GCS 버킷에서 읽거나 쓰려면 연결된 서비스 계정을 만들어야 하며 버킷을 서비스 계정과 연결해야 합니다. 서비스 계정에 대해 생성한 키를 사용하여 버킷에 직접 연결합니다.

Google Cloud 서비스 계정 키를 사용하여 GCS 버킷에 직접 액세스

버킷을 읽고 직접 쓰려면 Spark 구성에 정의된 키를 구성합니다.

1단계: Google 클라우드 콘솔을 사용하여 Google Cloud 서비스 계정 설정

Azure Databricks 클러스터에 대한 서비스 계정을 만들어야 합니다. Databricks의 권장 사항에 따라 이 서비스 계정에 해당 작업을 수행하는 데 필요한 최소한의 권한을 부여하는 것이 좋습니다.

  1. 왼쪽 탐색 창에서 IAM 및 관리자를 클릭합니다.

  2. 서비스 계정을 클릭합니다.

  3. + 서비스 계정 만들기를 클릭합니다.

  4. 서비스 계정 이름 및 설명을 입력합니다.

    GCS용 Google Create 서비스 계정

  5. 만들기를 클릭합니다.

  6. 계속을 클릭합니다.

  7. 완료를 클릭합니다.

2단계: GCS 버킷에 직접 액세스하는 키 만들기

Warning

서비스 계정에 대해 생성하는 JSON 키는 GCP 계정의 데이터 세트 및 리소스에 대한 액세스를 제어하므로 승인된 사용자와만 공유해야 하는 프라이빗 키입니다.

  1. Google 클라우드 콘솔의 서비스 계정 목록에서 새로 만들어진 계정을 클릭합니다.

  2. 섹션에서 키 추가 > 새 키 만들기를 클릭합니다.

    Google 키 만들기

  3. JSON 키 형식을 수락합니다.

  4. 만들기를 클릭합니다. 키 파일이 컴퓨터에 다운로드됩니다.

3단계: GCS 버킷 구성

버킷 만들기

아직 버킷이 없는 경우 다음과 같이 만듭니다.

  1. 왼쪽 탐색 창에서 스토리지를 클릭합니다.

  2. 버킷 만들기를 클릭합니다.

    Google 버킷 만들기

  3. 만들기를 클릭합니다.

버킷 구성

  1. 버킷 세부 정보를 구성합니다.

  2. 권한 탭을 클릭합니다.

  3. 권한 레이블 옆에 있는 추가를 클릭합니다.

    Google 버킷 세부 정보

  4. Cloud Storage 역할에서 버킷의 서비스 계정에 대한 스토리지 관리자 권한을 제공합니다.

    Google 버킷 권한

  5. 저장을 클릭합니다.

4단계: Databricks 비밀에 서비스 계정 키 배치

Databricks는 모든 자격 증명을 저장하기 위해 비밀 범위를 사용하는 것을 권장합니다. 키 JSON 파일의 프라이빗 키 및 프라이빗 키 ID를 Databricks 비밀 범위에 넣을 수 있습니다. 작업 영역의 사용자, 서비스 주체 및 그룹에 비밀 범위를 읽을 수 있는 액세스 권한을 부여할 수 있습니다. 이렇게 하면 사용자가 GCS에 액세스할 수 있도록 하면서 서비스 계정 키를 보호합니다. 비밀 범위를 만들려면 비밀을 참조 하세요.

5단계: Azure Databricks 클러스터 구성

  1. Spark 구성 탭에서 다음 코드 조각을 사용하여 비밀 범위에 저장된 키를 설정합니다.

    spark.hadoop.google.cloud.auth.service.account.enable true
    spark.hadoop.fs.gs.auth.service.account.email <client-email>
    spark.hadoop.fs.gs.project.id <project-id>
    spark.hadoop.fs.gs.auth.service.account.private.key {{secrets/scope/gsa_private_key}}
    spark.hadoop.fs.gs.auth.service.account.private.key.id {{secrets/scope/gsa_private_key_id}}
    

    <project-id> 를 키 JSON 파일의 정확한 필드 이름 값으로 바꿉<client-email>니다.

클러스터 액세스 제어와 Notebook 액세스 제어를 함께 사용하여 GCS 버킷의 서비스 계정 및 데이터에 대한 액세스를 보호합니다. Databricks Notebook을 사용하여 컴퓨팅 권한 및 공동 작업을 참조하세요.

6단계: GCS에서 읽기

GCS 버킷에서 읽으려면 지원되는 형식으로 Spark 읽기 명령을 사용합니다. 예를 들면 다음과 같습니다.

df = spark.read.format("parquet").load("gs://<bucket-name>/<path>")

GCS 버킷에 쓰려면 지원되는 형식으로 Spark 쓰기 명령을 사용합니다. 예를 들면 다음과 같습니다.

df.write.mode("<mode>").save("gs://<bucket-name>/<path>")

3단계: GCS 버킷 구성에서 만든 버킷의 이름으로 바꿉 <bucket-name> 습니다.

예제 Notebook

Google Cloud Storage Notebook에서 읽기

전자 필기장 가져오기

Google Cloud Storage Notebook에 쓰기

전자 필기장 가져오기