很高兴为您带来 Databend 2024 年 9 月的最新更新、新功能和改进!我们希望这些增强功能对您有所帮助,并期待您的反馈。
新集成方式:字典
您现在可以通过定义字典的结构并指定外部数据源来创建字典。Databend 的字典功能提供了一种高效的方式,可以直接在 Databend 中集成并查询来自支持的外部数据源(目前支持 MySQL 和 Redis)。通过充当内存中的键值存储,字典能够快速访问外部数据,而不需要复杂的数据管道或传统的 ETL 过程。
以下示例创建了一个引用 MySQL orders
表的字典。完整示例请参阅: https://docs.databend.cn/guides/query/dictionary
CREATE DICTIONARY order_dict
(
order_id INT,
customer_name STRING,
order_total INT
)
PRIMARY KEY order_id
SOURCE(MYSQL(
host='mysql'
port='3306'
username='root'
password='admin'
db='dict'
table='orders'
));
如果感兴趣,您可以跟随本教程进行实际操作体验:使用字典访问 MySQL 和 Redis。
SQL 变量
您现在可以使用 SQL 变量来存储和管理临时数据。在查询中使用变量时,您可以使用 $
进行值替换,或使用 IDENTIFIER
访问数据库对象。有关更多信息,请参阅 SQL 变量。
您可以在 SQL 语句中通过 $
符号或 getvariable()
函数引用变量的值。两种方法都支持动态替换,即在运行时将变量的值直接嵌入查询中。
-- Set a variable to use as a filter value
SET VARIABLE threshold = 100;
-- Use the variable in a query with $
SELECT * FROM sales WHERE amount > $threshold;
-- Alternatively, use the getvariable() function
SELECT * FROM sales WHERE amount > getvariable('threshold');
IDENTIFIER
关键字允许您动态引用存储在变量中的数据库对象名。请注意,使用 IDENTIFIER
访问对象的功能在 BendSQL 中尚未支持。
-- Create a table with sales data
CREATE TABLE sales_data (region TEXT, sales_amount INT, month TEXT) AS
SELECT 'North', 5000, 'January' UNION ALL
SELECT 'South', 3000, 'January';
select * from sales_data;
-- Set variables for the table name and column name
SET VARIABLE table_name = 'sales_data';
SET VARIABLE column_name = 'sales_amount';
-- Use IDENTIFIER to dynamically reference the table and column in the query
SELECT region, IDENTIFIER($column_name)
FROM IDENTIFIER($table_name)
WHERE IDENTIFIER($column_name) > 4000;
故障安全(Fail-Safe)
Databend 中的故障安全机制旨在从对象存储中恢复丢失或意外删除的数据。目前,故障安全仅支持 S3 兼容的存储类型。有关故障安全的更多信息,请参阅故障安全。
CALL SYSTEM$FUSE_AMEND('<database_name>', '<table_name>');
要使故障安全(Fail-Safe)生效,必须启用存储桶版本控制。请注意,启用版本控制之前创建的数据无法通过此方法恢复。
流提示
流提示允许您通过提示来指定各种流配置选项,从而控制流的处理方式。
SELECT ...
FROM <stream_name> WITH (<hint1> = <value1>[, <hint2> = <value2>, ...])
可用的提示选项:
- CONSUME: 指定此查询是否会消费流。默认为
False
。 - MAX_BATCH_SIZE: 定义从流中每批处理的最大行数。
有关这些提示和示例的更多信息,请参阅 WITH 流提示。
新增 FUSE 引擎选项
我们引入了一个新的 FUSE 引擎选项 data_retention_period_in_hours
,允许您指定保留表数据的小时数。有关更多信息,请参阅 FUSE 引擎。
Databend Cloud 体验优化
我们给 Databend Cloud 带来了一些新功能,准备好迎接更棒的体验吧!
TASK_HISTORY 表函数
我们引入了一个新的表函数 TASK_HISTORY,用于显示任务运行历史。
-- Retrieve all task history records
SELECT
*
FROM TASK_HISTORY() order by scheduled_time;
-- Retrieve the task history records where the scheduled time range starts at '2022-01-02T01:12:00-07:00' and ends at '2022-01-02T01:12:30-07:00'.
SELECT *
FROM TASK_HISTORY(
SCHEDULED_TIME_RANGE_START=>TO_TIMESTAMP('2022-01-02T01:12:00-07:00'),
SCHEDULED_TIME_RANGE_END=>TO_TIMESTAMP('2022-01-02T01:12:30-07:00'));
批量操作
您可以对计算集群执行批量操作,包括批量重启、批量暂停、批量恢复和批量删除。要进行批量操作,可以在计算集群列表中勾选所需操作的计算集群,然后点击省略号按钮选择所需的操作。
新教程
- 分析 AWS 账单:在本教程中,我们将指导您完成导入 AWS 账单数据并使用 SQL 进行成本分析的过程。您将学习如何将 AWS 账单数据加载到 Databend Cloud 中,查询以找出主要的成本驱动因素,并深入了解您的 AWS 使用情况。
- 从 Snowflake 迁移:在本教程中,我们将指导您完成将数据从 Snowflake 导出为 Parquet 格式并存储到 Amazon S3 存储桶的过程,然后将其加载到 Databend Cloud 中。
授予财务人员访问权限
为了便利财务团队的工作,同时确保数据安全,您可以在 Databend Cloud 中创建一个名为 billing
的角色。
CREATE ROLE billing;
该角色将专门为仅提供与账单相关的信息访问而定制。有关更多信息,请参阅授予财务人员访问权限。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。