RisingWave 1.4 - 新版 S3 source 连接器、支持更多下游系统、命令和函数

209 阅读4分钟

RisingWave 1.4 版本正式发布!此次更新提供了许多新功能和新特性,例如引入了更多上下游连接器、并对现有连接器进行改进,新增了多个函数和运算符,以支持更复杂的数据转换等等。

本文将介绍此次发布中的主要亮点,完整的功能更新请参阅发布说明。

1. 新版 S3 source 连接器 

为解决旧版 S3 source 连接器的可扩展性问题,本次更新引入了升级版 AWS S3 source 连接器。新版创建 S3 source 的方法与旧版几乎一致。如果您有意测试 AWS S3 和 RisingWave 的集成,我们建议使用升级版 S3 source 连接器 s3_v2,为您带来更稳定顺畅的体验。

更多细节,请查看:

2. 导出到更多系统 

为了让 RisingWave 能轻松与任何现有数据栈集成,我们团队一直致力于让 RisingWave 连接更多系统。您可以查看我们的集成页面,了解目前支持的所有系统。您也可以为某个特定集成投票,我们会优先该集成的开发。

RisingWave 现在可以将数据导出到 Doris、Google BigQuery 和 Redis 了。BigQuery、Doris 和 Redis 都可以用作数据存储工具。只需使用简单的 SQL 命令,就可以在 RisingWave 中创建一个 sink,轻松将数据导出到这些系统。

更多细节,请查看:

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 命令查询。

更多细节,请查看:

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_pathjsonb_objectjsonb_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]

更多细节,请查看:

6. 结论

以上是 RisingWave 1.4 的部分功能亮点,完整的功能更新请参阅发布说明。您可关注 RisingWave 的 GitHub repository 以了解最新的开发动向和发布计划。

7. 关于 RisingWave

RisingWave 是一款分布式 SQL 流处理数据库,旨在帮助用户降低实时应用的的开发成本。作为专为云上分布式流处理而设计的系统,RisingWave 为用户提供了与 PostgreSQL 类似的使用体验,并且具备比 Flink 高出 10 倍的性能以及更低的成本。了解更多:

GitHub: risingwave.com/github

官网: risingwave.com

公众号: RisingWave 中文开源社区