1. 程式人生 > 其它 >delta lake minio+dremio 整合試用

delta lake minio+dremio 整合試用

參考整合模式

環境準備

基於docker 執行

  • spark 環境準備
docker run -it  -p 8080:8080  datamechanics/spark:jvm-only-3.1-latest sh
// 啟動master
 /opt/spark/sbin/start-master.sh
// 啟動worker
./start-worker.sh  spark://bbc0225c7aee:7077

效果

minio 準備

很簡單,也是基於容器部署的

spark 整合delta lake 以及minio s3

  • 執行命令
./spark-shell \
--packages io.delta:delta-core_2.12:1.0.0,org.apache.hadoop:hadoop-aws:3.2.0 \
--conf "spark.hadoop.fs.s3a.access.key=<accesskey>" \
--conf "spark.hadoop.fs.s3a.secret.key=<accesssecret>" \
--conf "spark.hadoop.fs.s3a.endpoint=endpoint" \
--conf "spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension" \ 
--conf "spark.databricks.delta.retentionDurationCheck.enabled=false \
--conf "spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog"
  • 建立delta lake table
    直接可以執行官方demo
spark.range(50000000).write.format("delta").save("s3a://delta-lake/firstdemo")
  • s3 效果
  • dremio 整合

新增s3 data lake 資料來源

  • 資料查詢

    dremio 可以自動發現delta lake 的資料格式,但是需要開啟,預設16.1 直接開啟了


說明

以上只是簡單的將各個元件整合在一起,基於delta lake + minio+ dremio 的資料分析模式也是一個很不錯的選擇,可以加速我們的資料查詢處理
dremio 的能力是很強大的,我們可以利用反射能力方便的進行資料加速處理,基於dremio 提供的sql 能力可以方便的進行資料分析,快速的利用資料
湖的能力加速業務處理,同時delta lake 自身也有一些問題(小檔案過多以及vacuum,這些問題也都可以很好的解決,官方提供了相關的管理api)

參考資料

https://docs.delta.io/latest/quick-start.html#language-scala
https://www.vertica.com/kb/Vertica_DeltaLake_Technical_Exploration/Content/Partner/Vertica_DeltaLake_Technical_Exploration.htm
https://databricks.com/blog/2019/04/17/running-peta-scale-spark-jobs-on-object-storage-using-s3-select.html
https://www.datamechanics.co/