다음을 통해 공유


Apache Spark DataFrames를 사용하여 Delta Sharing 공유 테이블 읽기

이 문서에서는 Apache Spark를 사용하여 델타 공유를 사용하여 공유된 데이터를 쿼리하는 구문 예제를 제공합니다. deltasharing 키워드(keyword) DataFrame 작업의 형식 옵션으로 사용합니다.

공유 데이터를 쿼리하기 위한 기타 옵션

다음 예제와 같이 메타스토어에 등록된 델타 공유 카탈로그에서 공유 테이블 이름을 사용하는 쿼리를 만들 수도 있습니다.

SQL

SELECT * FROM shared_table_name

Python

spark.read.table("shared_table_name")

Azure Databricks에서 델타 공유를 구성하고 공유 테이블 이름을 사용하여 데이터를 쿼리하는 방법에 대한 자세한 내용은 Databricks-to-Databricks Delta Sharing(받는 사람용)를 사용하여 공유된 데이터 읽기를 참조하세요.

구조적 스트리밍을 사용하여 공유 테이블의 레코드를 증분 방식으로 처리할 수 있습니다. 구조적 스트리밍을 사용하려면 테이블에 대한 기록 공유를 사용하도록 설정해야 합니다. ALTER SHARE를 참조하세요. 기록 공유에는 Databricks Runtime 12.2 LTS 이상이 필요합니다.

공유 테이블에 원본 델타 테이블에서 변경 데이터 피드를 사용하도록 설정하고 공유에서 사용하도록 설정된 기록이 있는 경우 구조적 스트리밍 또는 일괄 처리 작업으로 델타 공유를 읽는 동안 변경 데이터 피드를 사용할 수 있습니다. Azure Databricks에서 Delta Lake 변경 데이터 피드 사용을 참조하세요.

델타 공유 형식 키워드(keyword) 사용하여 읽습니다.

deltasharing 키워드(keyword) 다음 예제와 같이 Apache Spark DataFrame 읽기 작업에 대해 지원됩니다.

df = (spark.read
  .format("deltasharing")
  .load("<profile-path>#<share-name>.<schema-name>.<table-name>")
)

델타 공유 공유 테이블에 대한 변경 데이터 피드 읽기

기록 공유 및 변경 데이터 피드를 사용하도록 설정된 테이블의 경우 Apache Spark DataFrames를 사용하여 변경 데이터 피드 레코드를 읽을 수 있습니다. 기록 공유에는 Databricks Runtime 12.2 LTS 이상이 필요합니다.

df = (spark.read
  .format("deltasharing")
  .option("readChangeFeed", "true")
  .option("startingTimestamp", "2021-04-21 05:45:46")
  .option("endingTimestamp", "2021-05-21 12:00:00")
  .load("<profile-path>#<share-name>.<schema-name>.<table-name>")
)

구조적 스트리밍을 사용하여 델타 공유 공유 테이블 읽기

기록이 공유된 테이블의 경우 공유 테이블을 구조적 스트리밍의 원본으로 사용할 수 있습니다. 기록 공유에는 Databricks Runtime 12.2 LTS 이상이 필요합니다.

streaming_df = (spark.readStream
  .format("deltasharing")
  .load("<profile-path>#<share-name>.<schema-name>.<table-name>")
)

# If CDF is enabled on the source table
streaming_cdf_df = (spark.readStream
  .format("deltasharing")
  .option("readChangeFeed", "true")
  .option("startingTimestamp", "2021-04-21 05:45:46")
  .load("<profile-path>#<share-name>.<schema-name>.<table-name>")
)