iT邦幫忙

2024 iThome 鐵人賽

DAY 4
1
AI/ ML & Data

粗暴的資料處理 DuckDB系列 第 4

Day04 -- Who is using DuckDB (3) ?

  • 分享至 

  • xImage
  •  

前面提到 Meta (Facebook) 也有在使用 DuckDB,他們用到 DuckDB 的專案是 Velox

https://github.com/facebookincubator/velox

velox
Velox 是 Meta 用 C++ 寫的資料庫加速器,是為了解決內部資料系統之間的「各做各的」問題。 Meta 的基礎設施包含很多專門的資料處理引擎,像是處理 SQL 分析(Presto)、機器學習(Pytorch)、串流處理(Spark?)等不同工作。這些引擎原本是各自發展的,導致功能不統一,維護起來也很麻煩,尤其是當資料量變大、硬體更新時,問題變得更複雜。

Velox 就是為了解決這種「分散」的問題,讓所有引擎能夠共用一套核心技術,這樣可以減少重複開發,提升效率,讓資料處理更快、更一致。對 Meta 來說,這不僅可以優化他們自己的產品效能,還希望這個開源工具能夠幫助整個產業,讓其他公司也能受益。

目前 Velox 整合到 Meta 的十多個資料系統中,如 Presto、Spark 和 PyTorch,為資料預處理和機器學習提供支持。Velox 統一了多個計算引擎的資料密集型元件,促進了功能重用,並改善系統間的不一致性問題,讓開發者能更高效地管理和處理資料。Velox 還整合了先進的優化技術,支持複雜資料類型,並透過 Apache Arrow 格式的集成優化 SQL 查詢執行。

Velox 核心的 vector format 就是跟 DuckDB 團隊一起設計的,並且在 Velox 2023 年以前都使用 DuckDB 當作 Velox 內部的 Paruet reader.

parquet

一樣的,我們在第一天已經偷偷的,桑貝比 nlnlOuO 用了 Parquet。現在我們亡羊補牢一下 Apache Parquet 是什麼?

https://parquet.apache.org/

Apache Parquet 是什麼?

Parquet 是一種專為大規模資料處理設計的檔案格式,可以理解為比 CSV 更快、更有效率的版本。它的最大特色是能夠壓縮和優化儲存結構化資料,這意味著它在處理大量資料時,能夠大幅節省空間並加快讀寫速度。與傳統的 CSV 檔案不同,Parquet 會把相同類型的資料放在一起,這讓它在進行查詢或分析時特別快。許多資料分析工具,像是 Hadoop 和 Spark,都使用 Parquet 來處理和儲存大數據。

用 Parquet 來取代 CSV 我認為最主要的優點除了快速,更重要的是讀取的穩定性,一個 CSV 在 Pandas Polars DuckDB 讀出來可能會不一樣,因為 CSV 的 parsing 非常複雜。但是 Parquet 可以保證在各個 engine 讀出來的數據是一致的.這點非常推薦,珍惜生命,愛用 Parquet.

如果是偶然看到這篇的讀者,趕快試看看用 DuckDB WASM 讀讀看 parquet.

打開
https://shell.duckdb.org/

然後輸入

SELECT  
     department , sum(salary) as department_total
FROM 
     'https://ironman24.douenergy.com/employees.parquet'
     
GROUP BY department


上一篇
Day03 -- Who is using DuckDB (2) ?
下一篇
Day05 -- Who is using DuckDB (4) ?
系列文
粗暴的資料處理 DuckDB13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言