Databricks 中结构化流和 Delta Live Tables 的区别

问题描述 投票:0回答:1

我对 Structured Streaming 和 Delta Live Tables 之间的区别感兴趣。 Databricks 说

For most streaming or incremental data processing or ETL tasks, Databricks recommends Delta Live Tables
.

这是否意味着我应该始终坚持 DLT,而结构化流是一个老功能?

pyspark databricks spark-structured-streaming delta-live-tables
1个回答
0
投票

TL;DR - DLT = SaaS Structured Streaming,使流式传输变得简单,但需要付出一定的代价($$)。


分布式账本技术

  • 提供 DSL 让您用更少的代码行编写流代码。一个简单的例子(尽管 DLT 提供了更多)。 例如。使用结构化流从
    /path/to/json/file/streams/taxi_raw
    的 json 文件流式传输到
    /path/to/delta/tables/filtered_data
    :
  • 的增量表
df_taxi_raw = spark.readStream.json('/databricks-datasets/nyctaxi/sample/json/')
df_taxi_raw.writeStream.format('delta').start('/path/to/delta/tables/taxi_raw')

df_filtered_data = spark.readStream.format("delta").load("/path/to/delta/tables/taxi_raw").where(...)
df_filtered_data.writeStream.format('delta').start('/path/to/delta/tables/filtered_data')

使用分布式账本技术同样的事情:

import dlt

@dlt.view
def taxi_raw():
  return spark.read.format("json").load("/path/to/json/file/streams/taxi_raw")

@dlt.table(name="filtered_data")
def create_filtered_data():
  return dlt.read("taxi_raw").where(...)
  • 这是额外费用.
  • [意见] 它很新,我们没有去尝试它,因为我们之前已经被“前沿功能”所困扰。 YMMV.

这是否意味着我应该始终坚持 DLT,而结构化流是一个老功能?

“Databricks 推荐”是因为他们从事赚钱的业务,而不是因为 DLT 是替代旧功能的“新功能”。更像是沃尔玛推荐“Walmart+”,虽然不一定要到沃尔玛购物

例如

RDD
DataFrame
取代,未来新功能将添加到
DataFrame
而不是
RDD
。但 DLT 和结构化流媒体并非如此。 Structured Streaming 由 Apache 开发,并将继续下去。

了解成本和收益,然后再做决定。您可以使用 DLT 或股票 Spark Structured Streaming 进行流式传输。

© www.soinside.com 2019 - 2024. All rights reserved.