테이블_생성

Important

이 기능은 베타 버전으로 제공됩니다.

파이프라인의 create_table() 함수를 사용하여 하나 이상의 append_flow 선언으로 작성된 관리되는 테이블을 만듭니다. create_table() 테이블에 쓰는 하나 이상의 @append_flow(target=...) 데코레이터와 호출을 페어링합니다. 여러 흐름이 동일한 관리형 테이블을 대상으로 할 수 있습니다.

해당하는 SQL은 다음을 참조하세요 CREATE TABLE . 흐름.

Syntax

from pyspark import pipelines as dp

dp.create_table(
  name = "<table-name>",
  comment = "<comment>",
  spark_conf={"<key>" : "<value>", "<key>" : "<value>"},
  table_properties={"<key>" : "<value>", "<key>" : "<value>"},
  partition_cols=["<partition-column>", "<partition-column>"],
  path="<storage-location-path>",
  schema="schema-definition",
  expect_all = {"<key>" : "<value>", "<key>" : "<value>"},
  expect_all_or_drop = {"<key>" : "<value>", "<key>" : "<value>"},
  expect_all_or_fail = {"<key>" : "<value>", "<key>" : "<value>"},
  cluster_by = ["<clustering-column>", "<clustering-column>"],
  cluster_by_auto = False,
  row_filter = "row-filter-clause",
  private = False
)

Parameters

매개 변수 Type 설명
name str Required. 테이블의 이름입니다.
comment str 테이블에 대한 설명입니다.
spark_conf dict 이 쿼리를 실행하기 위한 Spark 구성 목록입니다.
table_properties dict dict 테이블의 테이블 속성입니다.
partition_cols list 테이블을 분할하는 데 사용할 하나 이상의 열 목록입니다.
path str 테이블 데이터의 스토리지 위치입니다. 설정하지 않은 경우 테이블을 포함하는 스키마에 대해 관리되는 스토리지 위치를 사용합니다.
schema str 또는 StructType 테이블에 대한 스키마 정의입니다. 스키마는 SQL DDL 문자열 또는 Python StructType으로 정의할 수 있습니다
expect_all, , expect_all_or_dropexpect_all_or_fail dict 테이블에 대한 데이터 품질 제약 조건입니다. 동일한 동작을 제공하고 예상 데코레이터 함수와 동일한 구문을 사용하지만 매개 변수로 구현됩니다. 기대치를 참조하세요.
cluster_by list 테이블에서 액체 클러스터링을 사용하도록 설정하고 클러스터링 키로 사용할 열을 정의합니다. 테이블에 대한 액체 클러스터링 사용을 참조하세요.
cluster_by_auto bool 테이블에서 자동 액체 클러스터링을 사용하도록 설정합니다. 초기 클러스터링 키를 정의하기 위해 함께 cluster_by 사용할 수 있습니다. 자동 액체 클러스터링을 참조하세요.
row_filter str (공개 체험판) 테이블에 대한 행 필터 조건입니다. 행 필터 및 열 마스크가 있는 테이블 게시을 참조하세요.
private bool 이 경우 True카탈로그에 게시되지 않고 파이프라인 내에서만 액세스할 수 있는 프라이빗 테이블을 만듭니다. 기본값은 False입니다.

Limitations

  • 관리되는 테이블은 CDC(변경 데이터 캡처) 변경 흐름을 지원하지 않습니다. create_auto_cdc_flow() 또는 create_auto_cdc_from_snapshot_flow() 관리되는 테이블을 대상으로 지정하지 못합니다. CDC 대상에 create_streaming_table() 를 사용합니다.
  • 관리되는 테이블은 append_flow. 흐름 바꾸기(replace_flow / FLOW ... REPLACE WHERE)는 지원되지 않습니다.
  • 관리되는 테이블은 Unity 카탈로그를 사용하는 파이프라인에서만 지원됩니다.
  • 관리되는 테이블에 대해 기존 스트리밍 테이블의 이름을 다시 사용할 수 없습니다.

Example

from pyspark import pipelines as dp

dp.create_table("combined")

@dp.append_flow(target="combined")
def from_a():
    return spark.readStream.table("source_a")

@dp.append_flow(target="combined")
def from_b():
    return spark.readStream.table("source_b")