Dataflow SQL 사용

이 페이지에서는 Dataflow SQL을 사용하고 Dataflow SQL 작업을 만드는 방법을 설명합니다.

Dataflow SQL 작업을 만들려면 Dataflow SQL 쿼리를 작성하고 실행해야 합니다.

Dataflow SQL 편집기 사용

Dataflow SQL 편집기는 Dataflow SQL 작업을 만들기 위해 쿼리를 작성하고 실행하는 Google Cloud Console의 페이지입니다.

Dataflow SQL 편집기에 액세스하려면 다음 단계를 따르세요.

다음 단계에 따라 Dataflow 모니터링 인터페이스에서 Dataflow SQL 편집기에 액세스할 수도 있습니다.

  1. Google Cloud 콘솔에서 Dataflow 작업 페이지로 이동합니다.

    작업으로 이동

  2. Dataflow 메뉴에서 SQL 작업공간을 클릭합니다.

Dataflow SQL 쿼리 작성

Dataflow SQL 쿼리는 Dataflow SQL 쿼리 구문을 사용합니다. Dataflow SQL 쿼리 구문은 BigQuery 표준 SQL과 유사합니다.

Dataflow SQL 스트리밍 확장 프로그램으로 Pub/Sub와 같은 Dataflow 소스를 지속적으로 업데이트하여 데이터를 집계할 수 있습니다.

예를 들어, 다음 쿼리는 매분마다 택시 탑승의 Pub/Sub 스트림에서 승객 수를 계산합니다.

SELECT
  DATETIME(tr.window_start) AS starttime,
  SUM(tr.passenger_count) AS pickup_count
FROM TUMBLE ((SELECT * FROM pubsub.topic.`pubsub-public-data`.`taxirides-realtime`),
DESCRIPTOR(event_timestamp), 'INTERVAL 1 MINUTE') AS tr
WHERE
  tr.ride_status = "pickup"
GROUP BY DATETIME(tr.window_start)

Dataflow SQL 쿼리 실행

Dataflow SQL 쿼리를 실행하면 Dataflow가 쿼리를 Apache Beam 파이프라인으로 변환하고 파이프라인을 실행합니다.

Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 Dataflow SQL 쿼리를 실행할 수 있습니다.

콘솔

Dataflow SQL 쿼리를 실행하려면 Dataflow SQL 편집기를 사용합니다.

  1. Dataflow SQL 편집기 페이지로 이동합니다.

    Dataflow SQL 편집기로 이동

  2. 쿼리 편집기에 Dataflow SQL 쿼리를 입력합니다.

  3. 작업 만들기를 클릭하여 작업 옵션 패널을 엽니다.

  4. 선택사항: 작업 이름에 고유한 작업 이름을 입력합니다.

  5. 리전 엔드포인트는 메뉴에서 값을 선택합니다.

  6. 선택사항: 선택적 매개변수 표시를 클릭한 다음 제공된 Dataflow 파이프라인 옵션에 값을 입력합니다.

  7. 대상에 대한 출력 유형을 선택한 다음 제공된 필드에 값을 입력합니다.

  8. 선택사항: SQL 쿼리 매개변수 섹션에서 매개변수를 추가한 후 제공된 필드에 값을 입력합니다.

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

gcloud

Dataflow SQL 쿼리를 실행하려면 gcloud dataflow sql query 명령어를 사용합니다. 다음은 SQL 쿼리를 만드는 예시입니다.

gcloud dataflow sql query \
  --job-name=JOB_NAME \
  --region=REGION \
  --bigquery-table=BIGQUERY_TABLE \
  --bigquery-dataset=BIGQUERY_DATASET \
  --bigquery-project=BIGQUERY_PROJECT \
'SQL_QUERY'

다음을 바꿉니다.

  • JOB_NAME: Dataflow SQL 작업 이름
  • REGION: Dataflow 작업을 배포하기 위한 Dataflow 위치
  • BIGQUERY_TABLE: 출력을 작성하려는 BigQuery 테이블의 이름
  • BIGQUERY_DATASET: 출력 테이블이 포함된 BigQuery 데이터 세트 ID
  • BIGQUERY_PROJECT: 출력 BigQuery 테이블을 포함하는 Google Cloud 프로젝트 ID
  • SQL_QUERY: Dataflow SQL 쿼리

파이프라인 옵션 설정

Dataflow SQL 작업의 Dataflow 파이프라인 옵션을 설정할 수 있습니다. Dataflow 파이프라인 옵션은 Dataflow SQL 쿼리를 실행하는 방법과 위치를 구성하는 실행 매개변수입니다.

Dataflow SQL 작업의 Dataflow 파이프라인 옵션을 설정하려면 Dataflow SQL 쿼리를 실행할 때 다음 매개변수를 지정합니다.

콘솔

매개변수 유형 설명 기본값
리전 엔드포인트 String 쿼리를 실행할 리전입니다. Dataflow SQL 쿼리는 Dataflow 위치가 있는 리전에서 실행할 수 있습니다. 설정하지 않으면 기본값은 us-central1.입니다.
최대 작업자 int 실행 중에 파이프라인을 사용할 수 있는 Compute Engine 인스턴스의 최대 수입니다. 지정하지 않으면 Dataflow가 자동으로 적절한 작업자 수를 결정합니다.
작업자 리전 String 파이프라인을 실행할 작업자 인스턴스를 시작하기 위한 Compute Engine 리전 Compute Engine 작업자 리전은 Dataflow 작업 리전과 다른 리전에 있을 수 있습니다. 설정하지 않으면 기본값은 지정된 Dataflow 리전입니다.
작업자 영역 String 파이프라인을 실행할 작업자 인스턴스를 시작하기 위한 Compute Engine 영역 Compute Engine 영역은 Dataflow 작업 리전과 다른 리전에 있을 수 있습니다.

설정하지 않으면 작업자 리전의 영역이 기본값입니다.

작업자 지역이 설정되지 않은 경우 기본값은 지정된 Dataflow 리전의 영역입니다.

서비스 계정 이메일 String 파이프라인을 실행할 작업자 서비스 계정의 이메일 주소입니다. 이메일 주소는 my-service-account-name@<project-id>.iam.gserviceaccount.com 형식이어야 합니다. 설정하지 않으면 Dataflow 작업자는 현재 프로젝트의 Compute Engine 서비스 계정을 작업자 서비스 계정으로 사용합니다.
머신 유형 String

Dataflow가 작업자를 시작할 때 사용하는 Compute Engine 머신 유형입니다. 사용 가능한 Compute Engine 머신 유형 계열과 커스텀 머신 유형을 사용할 수 있습니다.

최상의 결과를 얻으려면 n1 머신 유형을 사용하세요. f1g1 시리즈 작업자와 같은 공유 코어 머신 유형은 Dataflow의 서비스수준계약에서 지원되지 않습니다.

Dataflow 요금은 vCPU 수와 작업자 메모리의 GB를 기준으로 청구됩니다. 청구되는 요금은 머신 유형과는 무관합니다.

설정하지 않으면 Dataflow가 머신 유형을 자동으로 선택합니다.
추가 실험 String 사용 설정할 실험 실험은 enable_streaming_engine와 같은 값이거나 shuffle_mode=service와 같은 키-값 쌍일 수 있습니다. 실험은 쉼표로 구분된 목록에 있어야 합니다. 지정하지 않으면 실험이 사용 설정되지 않습니다.
작업자 IP 주소 구성 String

Dataflow 작업자가 공개 IP 주소를 사용할지 여부를 지정합니다.

값을 Private로 설정하면 Dataflow 작업자는 모든 통신에 비공개 IP 주소를 사용합니다. 지정된 Network 또는 Subnetwork비공개 Google 액세스가 사용 설정되어 있어야 합니다.

값이 Private로 설정되고 Subnetwork 옵션이 지정되면 Network 옵션이 무시됩니다.

설정하지 않으면 기본값은 Public입니다.
네트워크 String 작업자가 할당된 Compute Engine 네트워크입니다. 설정하지 않으면 기본값은 네트워크 default입니다.
서브네트워크 String 작업자가 할당되는 Compute Engine 서브네트워크입니다. 서브네트워크는 regions/region/subnetworks/subnetwork 형식이어야 합니다. 설정하지 않으면 Dataflow가 자동으로 서브네트워크를 결정합니다.

gcloud

플래그 유형 설명 기본값
‑‑region String 쿼리를 실행할 리전입니다. Dataflow SQL 쿼리는 Dataflow 위치가 있는 리전에서 실행할 수 있습니다. 설정하지 않으면 오류가 발생합니다.
‑‑max‑workers int 실행 중에 파이프라인을 사용할 수 있는 Compute Engine 인스턴스의 최대 수입니다. 지정하지 않으면 Dataflow가 자동으로 적절한 작업자 수를 결정합니다.
‑‑num‑workers int 파이프라인 실행 시 사용할 초기 Compute Engine 인스턴스 수입니다. 이 매개변수는 작업이 시작될 때 Dataflow가 시작되는 작업의 수를 결정합니다. 지정하지 않으면 Dataflow가 자동으로 적절한 작업자 수를 결정합니다.
‑‑worker‑region String

파이프라인을 실행할 작업자 인스턴스를 시작하기 위한 Compute Engine 리전 Compute Engine 작업자 리전은 Dataflow 작업 리전과 다른 리전에 있을 수 있습니다.

‑‑worker‑region 또는 ‑‑worker‑zone 중 하나를 지정할 수 있습니다.

설정하지 않으면 기본값은 지정된 Dataflow 리전입니다.
‑‑worker‑zone String

파이프라인을 실행할 작업자 인스턴스를 시작하기 위한 Compute Engine 영역 Compute Engine 영역은 Dataflow 작업 리전과 다른 리전에 있을 수 있습니다.

‑‑worker‑region 또는 ‑‑worker‑zone 중 하나를 지정할 수 있습니다.

설정하지 않으면 기본값은 지정된 Dataflow 리전의 영역입니다.
‑‑worker‑machine‑type String

Dataflow가 작업자를 시작할 때 사용하는 Compute Engine 머신 유형입니다. 사용 가능한 Compute Engine 머신 유형 계열과 커스텀 머신 유형을 사용할 수 있습니다.

최상의 결과를 얻으려면 n1 머신 유형을 사용하세요. f1g1 시리즈 작업자와 같은 공유 코어 머신 유형은 Dataflow의 서비스수준계약에서 지원되지 않습니다.

Dataflow 요금은 vCPU 수와 작업자 메모리의 GB를 기준으로 청구됩니다. 청구되는 요금은 머신 유형과는 무관합니다.

설정하지 않으면 Dataflow가 머신 유형을 자동으로 선택합니다.
‑‑service‑account‑email String 파이프라인을 실행할 작업자 서비스 계정의 이메일 주소입니다. 이메일 주소는 my-service-account-name@<project-id>.iam.gserviceaccount.com 형식이어야 합니다. 설정하지 않으면 Dataflow 작업자는 현재 프로젝트의 Compute Engine 서비스 계정을 작업자 서비스 계정으로 사용합니다.
‑‑disable‑public‑ips boolean

Dataflow 작업자가 공개 IP 주소를 사용할지 여부를 지정합니다.

설정하면 Dataflow 작업자가 모든 통신에 비공개 IP 주소를 사용합니다.

설정하지 않으면 Dataflow 작업자가 공개 IP 주소를 사용합니다.
‑‑network String 작업자가 할당된 Compute Engine 네트워크입니다. 설정하지 않으면 기본값은 네트워크 default입니다.
‑‑subnetwork String 작업자가 할당되는 Compute Engine 서브네트워크입니다. 서브네트워크는 regions/region/subnetworks/subnetwork 형식이어야 합니다. 설정하지 않으면 Dataflow가 자동으로 서브네트워크를 결정합니다.
‑‑dataflow‑kms‑key String 저장 데이터 암호화에 사용한 고객 관리형 암호화 키(CMEK)입니다. Cloud KMS를 통해 암호화 키를 제어할 수 있습니다. 키는 작업과 동일한 위치에 있어야 합니다. 지정되지 않은 경우 Dataflow는 CMEK 대신 기본 Google Cloud 암호화를 사용합니다.

자세한 내용은 gcloud dataflow sql query 명령어 참조를 참조하세요.

Dataflow SQL 작업 중지

Dataflow SQL 작업을 중지하려면 취소해야 합니다. drain 옵션을 통한 Dataflow SQL 작업 중지는 지원되지 않습니다.

가격 책정

Dataflow SQL은 표준 Dataflow 가격 책정을 사용하며 별도의 가격 책정을 사용하지 않습니다. SQL 문을 기반으로 만든 Dataflow 작업에서 사용하는 리소스에 대해 요금이 청구됩니다. 이러한 리소스에 대한 요금은 vCPU, 메모리, Persistent Disk, 스트리밍 엔진, Dataflow Shuffle에 대한 표준 Dataflow 요금입니다.

Dataflow SQL 작업은 Pub/Sub 및 BigQuery와 같은 추가 리소스를 각각 자체 요금으로 소비할 수 있습니다.

Dataflow 가격 책정에 관한 자세한 내용은 Dataflow 가격 책정을 참조하세요.

다음 단계