RisingWave 1.4 版本正式发布!此次更新提供了许多新功能和新特性,例如引入了更多上下游连接器、并对现有连接器进行改进,新增了多个函数和运算符,以支持更复杂的数据转换等等。
本文将介绍此次发布中的主要亮点,完整的功能更新请参阅发布说明。
1. 新版 S3 source 连接器
为解决旧版 S3 source 连接器的可扩展性问题,本次更新引入了升级版 AWS S3 source 连接器。新版创建 S3 source 的方法与旧版几乎一致。如果您有意测试 AWS S3 和 RisingWave 的集成,我们建议使用升级版 S3 source 连接器 s3_v2,为您带来更稳定顺畅的体验。
更多细节,请查看:
- Ingest data from S3 bucket「从 S3 导入数据」
- Design document「功能设计文档」
2. 导出到更多系统
为了让 RisingWave 能轻松与任何现有数据栈集成,我们团队一直致力于让 RisingWave 连接更多系统。您可以查看我们的集成页面,了解目前支持的所有系统。您也可以为某个特定集成投票,我们会优先该集成的开发。
RisingWave 现在可以将数据导出到 Doris、Google BigQuery 和 Redis 了。BigQuery、Doris 和 Redis 都可以用作数据存储工具。只需使用简单的 SQL 命令,就可以在 RisingWave 中创建一个 sink,轻松将数据导出到这些系统。
更多细节,请查看:
- Sink data from RisingWave to Apache Doris「从 RisingWave 导出数据到 Apache Doris」
- Sink data from RisingWave to Google BigQuery「从 RisingWave 导出数据到 Google BigQuery」
- Sink data from RisingWave to Redis「从 RisingWave 导出数据到 Redis」
3. 支持 COMMENT ON 命令
您可以使用此命令为表和列添加注释,从而为数据库对象添加文档。额外的注释可以帮助协作者快速了解表和列的用法和含义。
例如,以下 SQL 查询向表 t1 添加了一个注释。
COMMENT ON TABLE t1 IS 'this is table 1';
如需查看注释,您可以从 rw_description 中查询。
SELECT * FROM rw_description;
-------
objoid | classoid | objsubid | description
--------+----------+----------+-------------------------------------
1001 | 41 | | this is table 1
您还可以使用 SHOW COLUMNS 或 DESCRIBE 命令查询。
更多细节,请查看:
- COMMENT ON「COMMENT ON 命令」
4. UPDATE 和 DELETE 子查询
此版本在使用 UPDATE 或 DELETE 命令时支持子查询,方便您根据特定条件更新和删除数据,以进行复杂的数据计算,同时更容易进行数据清理。
UPDATE table_name
SET col_1 = col_1 * 2.2
WHERE col_1 NOT IN (SELECT col_2 FROM drop_vals);
更多细节,请查看:
5. 支持更多 JSON 函数和运算符
该版本引入多个 JSON 函数和运算符,可将 JSONB 类型作为输入或输出。RisingWave 支持用 JSONB 数据类型来创建存储 JSON 数据的列,以改善数据清理和转换体验。
该版本引入了多种 JSON 运算符,方便处理 RisingWave 中的 JSON 数据。请看示例:
-
@>运算符,检查左侧的JSONB对象是否包含右侧的JSONB对象中的值。'[1, 2, 3]'::jsonb @> '[1, 3]'::jsonb → t -
-运算符,从 JSON 对象中删除键值对、所有匹配的键、数组元素或指定索引处的元素。'{"a": "b", "c": "d"}'::jsonb - 'a' → {"c": "d"} -
#-运算符,删除指定路径上的元素。这里的路径元素可以是字段键或数组索引。'["a", {"b":1}]'::jsonb #- '{1,b}' → ["a", {}]
完整的运算符列表包括:@>、<@、?、?|、?&、#>、#>>、- 和 #-。
此次更新还新增了四个 JSON 函数,包括 jsonb_extract_path、jsonb_object、jsonb_pretty 和 jsonb_strip_nulls。以下简要介绍 jsonb_object 和 jsonb_pretty 函数。
jsonb_object将文本元素的输入数组转换为JSONB对象,其中字符串中的相邻值被视为键值对。
jsonb_object(array['a', null]) → {"a": null}
jsonb_pretty将输入的JSONB对象以规范的文本形式输出。
SELECT jsonb_pretty('[{"f1":1,"f2":null}, 2]');
------RESULT
[ { "f1": 1, "f2": null }, 2]
更多细节,请查看:
- JSON functions and operators 「JSON 函数和运算符」
- JSONB data type 「
JSONB数据类型」
6. 结论
以上是 RisingWave 1.4 的部分功能亮点,完整的功能更新请参阅发布说明。您可关注 RisingWave 的 GitHub repository 以了解最新的开发动向和发布计划。
7. 关于 RisingWave
RisingWave 是一款分布式 SQL 流处理数据库,旨在帮助用户降低实时应用的的开发成本。作为专为云上分布式流处理而设计的系统,RisingWave 为用户提供了与 PostgreSQL 类似的使用体验,并且具备比 Flink 高出 10 倍的性能以及更低的成本。了解更多:
GitHub: risingwave.com/github
官网: risingwave.com
公众号: RisingWave 中文开源社区