Databend 開源周報(bào)第 87 期

Databend 是一款現(xiàn)代云數(shù)倉。專為彈性和高效設(shè)計(jì),為您的大規(guī)模分析需求保駕護(hù)航。自由且開源。即刻體驗(yàn)云服務(wù):https://app.databend.com

What's On In Databend

探索 Databend 本周新進(jìn)展,遇到更貼近你心意的 Databend 。

聚合窗口函數(shù)

聚合窗口函數(shù)是指將聚合函數(shù)應(yīng)用于窗口中的每一行數(shù)據(jù)的函數(shù)。OVER 子句指定如何將結(jié)果集中的行分區(qū)。當(dāng)與GROUP BY一起使用時,聚合窗口函數(shù)不會折疊行,而是返回結(jié)果集中的所有行。

-- use aggrerate window function
SELECT date, AVG(amount) over (partition by date)
FROM BookSold

June 21|544.0
June 21|544.0
June 22|454.5
June 22|454.5
June 23|643.0
June 23|643.0

Databend 所支持的所有聚合函數(shù)都可以作為聚合窗口函數(shù)。

在拼寫錯誤時建議函數(shù)名稱

Databend 近期新增一項(xiàng)用于提高使用體驗(yàn)的智能提示功能,當(dāng)輸入不正確的函數(shù)名稱時,可以自動提示最接近匹配項(xiàng)。

#> select base64(1);
ERROR 1105 (HY000) at line 1: Code: 1008, displayText = error:
  --> SQL:1:8
  |
1 | select base64(1)
  |        ^^^^^^^^^ no function matches the given name: 'base64', do you mean 'to_base64'?

Code Corner

一起來探索 Databend 和周邊生態(tài)中的代碼片段或項(xiàng)目。

轉(zhuǎn)儲運(yùn)行中的異步任務(wù)棧

Databend 現(xiàn)在支持轉(zhuǎn)儲正在運(yùn)行的異步任務(wù)棧。只需訪問 http://<admin_api_address>/debug/async_tasks/dump 即可在瀏覽器中捕獲它。

[圖片上傳失敗...(image-ac1e7a-1680592405632)]

調(diào)用 async_backtrace::taskdump_tree 函數(shù)可以獲取異步任務(wù)樹(由 #[async_backtrace::framed] 收集)的相關(guān)信息。

    let tree =
        async_backtrace::taskdump_tree(req.map(|x| x.wait_for_running_tasks).unwrap_or(false));

任務(wù)分為常規(guī)任務(wù)和輪詢?nèi)蝿?wù)(標(biāo)記為 [POLLING])。記錄每個任務(wù)的棧信息,并按棧深度排序輸出到字符串。

    for mut tasks in [tasks, polling_tasks] {
        tasks.sort_by(|l, r| Ord::cmp(&l.stack_frames.len(), &r.stack_frames.len()));

        for item in tasks.into_iter().rev() {
            for frame in item.stack_frames {
                writeln!(output, "{}", frame).unwrap();
            }

            writeln!(output).unwrap();
        }
    }

如果你想要了解其工作原理,可以訪問下面的鏈接:

與 Jupyter Notebook 集成的新方法

正如 Doc | Visualization Databend Data in Jupyter Notebook 所述,我們可以使用 Jupyter Notebook 探索 Databend 中的數(shù)據(jù)。

[圖片上傳失敗...(image-8ff303-1680592405632)]

然而,通過 magic 技巧和 ipython-sql ,我們可以提供另一種交互方式。這種方式使得 SQL 查詢看起來像是在 SQL cells 中運(yùn)行,而不需要維護(hù)用于集成的 Python 樣板代碼。

安裝依賴

pip install ipython-sql databend-sqlalchemy

與 Jupyter Notebook 協(xié)同

In [1]: %load_ext sql

In [2]: %%sql databend://{username}:{password}@{host_port_name}/{database_name}?secure=false
   ...: SHOW DATABASES;

In [3]: result = %%sql SELECT * FROM numbers(100);

In [4]: %matplotlib inline
   ...: df = result.DataFrame()
   ...: df.plot()

亮點(diǎn)

以下是一些值得注意的事件,也許您可以找到感興趣的內(nèi)容。

  • 通過選擇預(yù)配置的 MySQL 驅(qū)動程序或添加 Databend JDBC 驅(qū)動程序,現(xiàn)在可以 使用 DBeaver 連接到 Databend。
  • Databend 現(xiàn)已提供與 Redash 的集成,幫助你洞見數(shù)據(jù)。文檔 | Integrations - Redash
  • 掌握如何顯示給定表中的列信息。 文檔 | SHOW COLUMNS
  • Databend 現(xiàn)在支持 generate_seriesrange 表函數(shù)。
  • Databend 現(xiàn)在支持 ai_embedding_vector 函數(shù),該函數(shù)返回由 OpenAI Embeddings API 生成的 1536 維 f32 向量。
  • Databend 增加了對DDL [CREATE | DROP | SHOW] SHARE ENDPOINT 的支持。

What's Up Next

我們始終對前沿技術(shù)和創(chuàng)新理念持開放態(tài)度,歡迎您加入社區(qū),為 Databend 注入活力。

收集來自 Sled 的度量信息

sled 是一種嵌入式數(shù)據(jù)庫,啟用 metrics 特性后可以導(dǎo)出度量信息。

Databend Meta Service 使用 sled 作為底層存儲引擎。我們希望獲取更多的度量信息來提高可觀測性,并進(jìn)一步優(yōu)化。

Issue #7233 | make use of sled metrics feature for collect sled metrics

如果你對這個主題感興趣,可以嘗試解決其中的部分問題或者參與討論和 PR review ?;蛘撸憧梢渣c(diǎn)擊 https://link.databend.rs/i-m-feeling-lucky 來挑選一個隨機(jī)問題,祝好運(yùn)!

Changelog

前往查看 Databend 每日構(gòu)建的變更日志,以了解開發(fā)的最新動態(tài)。

地址:https://github.com/datafuselabs/databend/releases

Contributors

非常感謝貢獻(xiàn)者們在本周的卓越工作。

11111.jpeg

Connect With Us

Databend 是一款開源、彈性、低成本,基于對象存儲也可以做實(shí)時分析的新式數(shù)倉。期待您的關(guān)注,一起探索云原生數(shù)倉解決方案,打造新一代開源 Data Cloud。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容