您可以使用DuckDB會話來進行DuckDB SQL互動式開發,享受輕量級、高效的資料分析能力。本文為您介紹如何建立DuckDB會話。
背景資訊
DuckDB是一款輕量級、高效能的嵌入式AnalyticDB引擎,專為OLAP(線上分析處理)情境最佳化。
功能特性
嵌入式架構:無需獨立伺服器,以庫的形式直接嵌入應用程式(類似SQLite),支援記憶體/磁碟模式。
列式儲存:資料按列儲存,最佳化彙總查詢與掃描效能。
向量化執行:利用SIMD指令平行處理資料批次,減少CPU開銷。
標準相容:支援SQL-92、SQL:2011標準,涵蓋CTE、視窗函數、JOIN(包括ASOF JOIN)、子查詢等。
多格式直讀:直接查詢CSV、Parquet、JSON檔案,無需匯入。
零拷貝整合:與Pandas、Arrow等記憶體資料結構無縫轉換,避免資料移轉開銷。
聯邦查詢:通過
httpfs擴充訪問遠程檔案(如S3),或串連PostgreSQL等外部資料庫聯集查詢。
適用情境
互動式分析:快速處理GB~TB級資料集,替代Pandas/Excel處理巨量資料。
邊緣計算:嵌入式部署在終端裝置,執行本機資料分析。
資料科學:與Python/R生態無縫銜接,作為ML資料預先處理引擎。
即時OLAP:支援高頻更新與複雜查詢並存的分析需求。
使用限制
DuckDB會話僅支援使用esr-4.8.0及以上、esr-3.7.0及以上引擎版本。
建立DuckDB會話
在左側導覽列,選擇EMR Serverless > Spark。
在Spark頁面,單擊目標工作空間名稱。
在EMR Serverless Spark頁面,單擊左側導覽列中的會話管理。
在會話管理頁面,單擊DuckDB會話頁簽。
在DuckDB會話列表頁面,單擊建立DuckDB會話。
在建立DuckDB會話對話方塊中,配置以下參數。
重要建議所選部署隊列的並發上限至少設定為DuckDB會話所需的資源大小,具體數值以控制台展示為準。
參數
說明
名稱
建立DuckDB會話的名稱。支援中文、英文字母、數字、底線(_)和連字號(-),長度為1~64個字元。同一工作空間內會話名稱不可重複。
部署隊列
選擇用於運行DuckDB會話的資源隊列。僅支援選擇已就緒的隊列。如果您尚未建立隊列,請先前往資源隊列管理頁面建立。具體操作,請參見管理資源隊列。
引擎版本
選擇DuckDB會話使用的引擎版本。當前支援的版本請參見版本介紹。
自動停止
設定會話在無活動狀態下的自動停止時間。開啟後,當會話在指定時間內無任何操作時,系統將自動停止會話以節省資源。預設開啟,預設時間為45分鐘。
網路連接
如果您的DuckDB任務需要訪問VPC內的資料來源或外部服務,需要配置網路連接。在下拉式清單中選擇已建立的網路連接名稱。具體操作,請參見新增網路連接。
cores
DuckDB的CPU數量。預設值為2 CPU。
memory
DuckDB的記憶體大小。預設值為8 GB。
memoryOverhead
DuckDB可用的記憶體。預設值為
max(384MB, 10% × memory)。Spark配置
填寫Spark配置資訊,預設以空格符分隔,例如,
spark.sql.catalog.paimon.metastore dlf。單擊建立。
建立完成後,您可以在DuckDB會話列表頁面查看新建立的會話。工作階段狀態為運行中時,即可用於DuckDBSQL開發。
查看運行記錄
在資料開發工作單位執行完成後,您可以通過會話管理頁面查看任務的運行記錄。
在會話列表頁面,單擊會話名稱。
單擊運行記錄頁簽。
在該頁面中,您可以查看任務的詳細運行資訊,包括運行ID、啟動時間、Spark UI等資訊。
