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")