写点什么

Databend 产品月报(2024 年 11 月)

作者:Databend
  • 2024-12-16
    北京
  • 本文字数:4714 字

    阅读完需:约 15 分钟

Databend 产品月报(2024年11月)

很高兴为您带来 Databend 2024 年 11 月的最新更新、新功能和改进!我们希望这些增强功能对您有所帮助,并期待您的反馈。

计算集群访问控制

Databend Cloud 现在允许您通过为计算集群分配特定角色来管理计算集群访问,以便只有具有该角色的用户才能访问计算集群。需要注意的是,计算集群访问控制默认启用。要启用访问控制,请在 工单 > 创建新工单 提交请求。


使用 Prometheus 跟踪指标

Databend Cloud(仅限 Business 和 Dedicated 用户)现已支持与 Prometheus 集成:您现在可以使用 Prometheus 实时监控查询性能、资源使用情况和系统指标。有关如何与 Prometheus 集成以及可用指标,请参阅 使用 Prometheus 跟踪指标


全新方式安装 BendSQL

你现在可以使用 Shell 脚本安装 BendSQL。以下两种方式可供选择:


  • 安装到用户的主目录(~/.bendsql):


curl -fsSL https://repo.databend.com/install/bendsql.sh | bash
B E N D S Q L Installer
--------------------------------------------------------------------------------Website: https://databend.comDocs: https://docs.databend.comGithub: https://github.com/databendlabs/bendsql--------------------------------------------------------------------------------
>>> We'll be installing BendSQL via a pre-built archive at https://repo.databend.com/bendsql/v0.22.2/>>> Ready to proceed? (y/n)>>> Please enter y or n.>>> y-------------------------------------------------------------------------------->>> Downloading BendSQL via https://repo.databend.com/bendsql/v0.22.2/bendsql-aarch64-apple-darwin.tar.gz ✓>>> Unpacking archive to /Users/eric/.bendsql ... ✓>>> Adding BendSQL path to /Users/eric/.zprofile ✓>>> Adding BendSQL path to /Users/eric/.profile ✓>>> Install succeeded! 🚀>>> To start BendSQL: bendsql --help>>> More information at https://github.com/databendlabs/bendsql
复制代码


  • 安装到指定目录(例如,/usr/local):


curl -fsSL https://repo.databend.com/install/bendsql.sh | bash -s -- -y --prefix /usr/local                                  B E N D S Q L                                    Installer--------------------------------------------------------------------------------Website: https://databend.comDocs: https://docs.databend.comGithub: https://github.com/databendlabs/bendsql-------------------------------------------------------------------------------->>> Downloading BendSQL via https://repo.databend.com/bendsql/v0.22.2/bendsql-aarch64-apple-darwin.tar.gz ✓>>> Unpacking archive to /usr/local ... ✓>>> Install succeeded! 🚀>>> To start BendSQL:    bendsql --help>>> More information at https://github.com/databendlabs/bendsql
复制代码

新增数据类型:GEOMETRY 和 GEOGRAPHY

Databend 新增对地理空间数据类型的基础支持,用于处理空间数据:


  • GEOMETRY: 使用平面坐标系(笛卡尔坐标),适用于二维几何对象。坐标以 (X, Y) 对表示,单位由关联的空间参考系统 (SRS) 决定。默认 SRID 为 0,但可以指定自定义 SRID。适合城市或省级分析等小范围测量,计算速度快且资源占用低,但在较大区域可能产生显著误差。

  • GEOGRAPHY: 使用基于纬度(-90° 至 90°)和经度(-180° 至 180°)的地理坐标系(球面坐标),遵循 WGS 84 标准(SRID 4326)。专为全球或大范围空间数据设计,在处理大距离时提供高精度,但计算复杂度和资源需求较高。必要时可以转换为 GEOMETRY 类型。


目前已支持的地理空间函数:


新支持子句:SETTINGS

新增 SETTINGS 子句: 用于配置特定设置,以影响其前置 SQL 语句的执行行为。


-- 允许 COPY INTO 使用最多 100 个线程进行并行处理:SETTINGS (max_threads = 100) COPY INTO ...
复制代码

新增 Map Lambda 函数

  • MAP_FILTER: 使用 lambda 表达式定义条件,从 map 中筛选出符合条件的键值对。


SELECT MAP_FILTER({101:15, 102:8, 103:12, 104:5}, (product_id, stock) -> (stock < 10)) AS low_stock_products;
┌────────────────────┐│ low_stock_products │├────────────────────┤│ {102:8,104:5} │└────────────────────┘
复制代码


  • MAP_TRANSFORM_KEYS: 使用 lambda 表达式对 map 中的每个键进行转换。


SELECT MAP_TRANSFORM_KEYS({101: 29.99, 102: 45.50, 103: 15.00}, (product_id, price) -> product_id + 1000) AS updated_product_ids;
┌────────────────────────────────────┐│ updated_product_ids │├────────────────────────────────────┤│ {1101:29.99,1102:45.50,1103:15.00} │└────────────────────────────────────┘
复制代码


  • MAP_TRANSFORM_VALUES: 使用 lambda 表达式对 map 中的每个值进行转换。


SELECT MAP_TRANSFORM_VALUES({101: 100.0, 102: 150.0, 103: 200.0}, (product_id, price) -> price * 0.9) AS discounted_prices;
┌───────────────────────────────────┐│ discounted_prices │├───────────────────────────────────┤│ {101:90.00,102:135.00,103:180.00} │└───────────────────────────────────┘
复制代码


  • JSON_MAP_FILTER: 根据使用 lambda 表达式定义的条件,筛选 JSON 对象中的键值对。


SELECT JSON_MAP_FILTER('{"status":"active", "user":"admin", "time":"2024-11-01"}'::VARIANT, (k, v) -> k = 'status') AS filtered_metadata;
┌─────────────────────┐│ filtered_metadata │├─────────────────────┤│ {"status":"active"} │└─────────────────────┘
复制代码


  • JSON_MAP_TRANSFORM_KEYS: 使用 lambda 表达式对 JSON 对象中的每个键进行转换。


SELECT JSON_MAP_TRANSFORM_KEYS('{"name":"John", "role":"admin"}'::VARIANT, (k, v) -> CONCAT(k, '_v1')) AS versioned_metadata;
┌──────────────────────────────────────┐│ versioned_metadata │├──────────────────────────────────────┤│ {"name_v1":"John","role_v1":"admin"} │└──────────────────────────────────────┘
复制代码


  • JSON_MAP_TRANSFORM_VALUES: 使用 lambda 表达式对 JSON 对象中的每个值进行转换。


SELECT JSON_MAP_TRANSFORM_VALUES('{"product1":"laptop", "product2":"phone"}'::VARIANT, (k, v) -> CONCAT(v, ' - Special Offer')) AS promo_descriptions;
┌──────────────────────────────────────────────────────────────────────────┐│ promo_descriptions │├──────────────────────────────────────────────────────────────────────────┤│ {"product1":"laptop - Special Offer","product2":"phone - Special Offer"} │└──────────────────────────────────────────────────────────────────────────┘
复制代码

新增日期函数

  • LAST_DAY: 根据提供的日期或时间戳,返回指定区间(周、月、季度或年)的最后一天。


SELECT LAST_DAY(to_date('2024-11-13'), month) AS billing_date;
┌──────────────┐│ billing_date │├──────────────┤│ 2024-11-30 │└──────────────┘
复制代码


  • NEXT_DAY: 返回给定日期或时间戳之后,下一次出现的指定星期几的日期。


SELECT NEXT_DAY(to_date('2024-11-13'), monday) AS next_monday;
┌─────────────┐│ next_monday │├─────────────┤│ 2024-11-18 │└─────────────┘
复制代码


  • PREVIOUS_DAY: 返回给定日期或时间戳之前,最近一次出现的指定星期几的日期。


SELECT PREVIOUS_DAY(to_date('2024-11-13'), friday) AS last_friday;
┌─────────────┐│ last_friday │├─────────────┤│ 2024-11-08 │└─────────────┘
复制代码

新增 Trim 函数

  • LTRIM: 移除字符串开头(左侧)的特定字符。


SELECT LTRIM('xxdatabend', 'xx');
┌───────────────────────────┐│ ltrim('xxdatabend', 'xx') │├───────────────────────────┤│ databend │└───────────────────────────┘
复制代码


  • RTRIM: 移除字符串末尾(右侧)的特定字符。


SELECT RTRIM('databendxx', 'xx');
┌───────────────────────────┐│ rtrim('databendxx', 'xx') │├───────────────────────────┤│ databend │└───────────────────────────┘
复制代码


  • TRIM_BOTH: 移除字符串两端的特定字符。


SELECT TRIM_BOTH('xxdatabendxx', 'xx');
┌─────────────────────────────────┐│ trim_both('xxdatabendxx', 'xx') │├─────────────────────────────────┤│ databend │└─────────────────────────────────┘
复制代码


  • TRIM_LEADING: 移除字符串开头(左侧)的特定字符。


SELECT TRIM_LEADING('xxdatabend', 'xx');
┌──────────────────────────────────┐│ trim_leading('xxdatabend', 'xx') │├──────────────────────────────────┤│ databend │└──────────────────────────────────┘
复制代码


  • TRIM_TRAILING: 移除字符串末尾(右侧)的特定字符。


SELECT TRIM_TRAILING('databendxx', 'xx');
┌───────────────────────────────────┐│ trim_trailing('databendxx', 'xx') │├───────────────────────────────────┤│ databend │└───────────────────────────────────┘
复制代码

关于 Databend

Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。


👨‍💻‍ Databend Cloud:databend.cn


📖 Databend 文档:docs.databend.cn/


💻 Wechat:Databend


✨ GitHub:github.com/databendlab…

发布于: 刚刚阅读数: 4
用户头像

Databend

关注

还未添加个人签名 2022-08-25 加入

还未添加个人简介

评论

发布
暂无评论
Databend 产品月报(2024年11月)_数据库_Databend_InfoQ写作社区