독립 실행형 파이프라인에서 Python 사용

Python 사용하여 Notebook에서 독립 실행형 구체화된 뷰 및 스트리밍 테이블을 만들고 새로 고칠 수 있습니다. Python 노트북에서 파이프라인을 작성하고 spark.sql()로 실행합니다. 이렇게 하면 다른 Python 기반 Notebook 워크플로와 함께 독립 실행형 파이프라인을 관리할 수 있습니다.

독립 실행형 파이프라인용 Python 소스에는 서버리스 일반 컴퓨팅에 연결된 노트북이 필요합니다. Python 사용하여 Databricks SQL 웨어하우스에서 독립 실행형 파이프라인을 만들거나 새로 고칠 수 없습니다. 웨어하우스는 Python Notebook이 아닌 SQL 문을 실행하기 때문입니다. 대신 SQL 웨어하우스를 사용하려면 독립 실행형 구체화된 뷰 사용독립 실행형 스트리밍 테이블 사용을 참조하세요.

Important

서버리스 일반 컴퓨팅의 Notebook에서 독립 실행형 구체화된 뷰 및 스트리밍 테이블을 만들고 새로 고치는 기능은 베타 로 제공되며 일부 지역에서 사용할 수 있습니다. 노트북을 참조하세요.

Requirements

Python 사용하여 독립 실행형 파이프라인을 만들고 새로 고치려면 Databricks Runtime 18.1 이상의 서버리스 일반 컴퓨팅에 연결된 Notebook이 필요합니다. 지역별 가용성 및 사용 권한을 포함한 전체 요구 사항 목록은 Notebooks를 참조하세요.

작동 방식

Python 노트북에서 Databricks SQL 웨어하우스에서 실행하는 것과 동일한 SQL 구문을 spark.sql()에 전달하세요. 독립 실행형 구체화된 뷰 및 스트리밍 테이블 구문은 동일합니다. 문을 제출하는 방법만 다릅니다. 웨어하우스와 마찬가지로 각 CREATE 또는 REFRESH 문은 서버를 사용하지 않는 파이프라인을 실행하여 작업을 처리합니다.

세션은 spark 기본적으로 Azure Databricks Notebook에서 사용할 수 있으므로 가져올 필요가 없습니다.

구체화된 뷰 만들기

다음 예제에서는 기본 테이블 mv1구체화된 뷰 base_table1 만듭니다.

spark.sql("""
  CREATE OR REPLACE MATERIALIZED VIEW mv1
  AS SELECT
    date,
    sum(sales) AS sum_of_sales
  FROM base_table1
  GROUP BY date
""")

예약된 새로 고침 및 트리거된 새로 고침과 같은 자세한 CREATE MATERIALIZED VIEW 내용은 구체화된 뷰 만들기를 참조하세요.

스트리밍 테이블 만들기

다음 예제에서는 raw_data 테이블에서 스트리밍 테이블 sales을 생성합니다.

spark.sql("""
  CREATE OR REFRESH STREAMING TABLE sales
  AS SELECT product, price FROM STREAM raw_data
""")

자동 로더를 사용하여 파일 로드 및 예약을 비롯한 자세한 CREATE STREAMING TABLE 내용은 독립 실행형 스트리밍 테이블 사용을 참조하세요.

구체화된 뷰 또는 스트리밍 테이블 새로 고침

REFRESH 문을 사용하여 독립 실행형 테이블을 원본의 최신 데이터로 업데이트합니다.

spark.sql("REFRESH MATERIALIZED VIEW mv1")
spark.sql("REFRESH STREAMING TABLE sales")

서버리스 일반 컴퓨팅에서는 새로 고침이 동기적입니다. 비동기 새로 고침( ASYNC 키워드)은 지원되지 않습니다. 서버리스 일반 컴퓨팅을 참조하세요.

매개 변수화된 문

Python 코드의 값을 하드 코딩하는 대신 문으로 전달하려면 SQL에서 명명된 매개 변수 표식을 사용하고 인수를 통해 argsspark.sql()해당 값을 제공합니다. 리터럴 값에는 :min_sales와 같은 표식을 직접 사용하세요. 식별자는 일반 문자열 값으로 대체할 수 없으므로, 매개 변수가 테이블, 뷰 또는 스키마와 같은 객체 이름인 경우에만 마커를 IDENTIFIER()로 감싸세요.

다음 예제에서는 구체화된 뷰 이름과 필터 값을 모두 매개 변수화합니다.

mv_name = "main.sales.regional_sales"
min_sales = 1000

spark.sql("""
  CREATE OR REPLACE MATERIALIZED VIEW IDENTIFIER(:mv)
  AS SELECT
    region,
    sum(sales) AS sum_of_sales
  FROM base_table1
  WHERE sales > :min_sales
  GROUP BY region
""", args={
  "mv": mv_name,
  "min_sales": min_sales,
})

자세한 내용은 매개 변수 표식IDENTIFIER 절을 참조하세요.

다른 명령문 실행

Python 노트북에서 이를 spark.sql()에 전달하여 새로 고침 예약, 테이블 변경 또는 테이블 삭제 문을 포함한 독립 실행형 구체화된 뷰 또는 스트리밍 테이블 문을 실행할 수 있습니다. SQL 구문을 포함하여 구체화된 뷰 및 스트리밍 테이블을 사용하는 방법을 이해하려면 독립 실행형 구체화된 뷰 사용독립 실행형 스트리밍 테이블 사용을 참조하세요.

Limitations

서버리스 일반 컴퓨팅에서 만든 독립 실행형 구체화된 뷰 및 스트리밍 테이블에는 비동기 새로 고침을 지원하지 않고 테이블당 비용 특성이 없는 등의 추가 제한 사항이 있습니다. 전체 목록은 서버리스 일반 컴퓨팅을 참조하세요.

추가 리소스