List of relations Schema | Name | Type | Owner --------+------------+-------+---------- public | test_table | table | postgres (1 row) duckdb_test=> select count(*) from test_table; count ---------- 10000000 (1 row) Time: 622.994 ms duckdb_test=> SET rds_duckdb.execution = on; SET Time: 3.626 ms duckdb_test=> select count(*) from test_table; count ---------- 10000000 (1 row) Time: 12.148 ms
什么原因导致的这个结果,这就是duckdb in PostgreSQL RDS,我们都知道duckdb在OLAP中的功能,且是一个列存的数据库系统。作为一个传统数据库的使用者,实际上最大需求就来自于传统数据库POSTGRESQL 是否能支持OLAP + OLTP ALL IN ONE ,POSTGRESQL。
OK POSTGRESQL 改造为OLAP + OLTP = POSTGRESQL RDS 的工作就完成了。
登录到你的RDS 产品直接,运行
duckdb_test=> create extension rds_duckdb; CREATE EXTENSION Time: 54.836 ms duckdb_test=> SELECT rds_duckdb.duckdb_version(); WARNING: Trying to execute an operation with non-duckdb tables((null)), fallback to PG. WARNING: If you don't want to use DuckDB anymore, set rds_duckdb.execution = off; duckdb_version ---------------- v1.1.1 (1 row) Time: 3.968 ms duckdb_test=>
然后你的POSTGRESQL RDS 产品就直接变成了OLTP + OLAP = POSTGRESQL RDS的数据库了。(此事此刻我都听见他在说 其他数据库都是小垃圾了,WO WO WO come down ,Don't be too pushy )
当然在一个数据库里面能同时进行行列引擎服务一个SQL的其他数据库也有,POLARDB FOR MYSQL 以及POLARDB FOR POSTGRESQL。 但 但 但,他们都是要加“积木”的,也就是需要使用 IMCI 节点,或矢量节点参与的,而这个RDS 产品的POSTGRESQL 在一个开源的数据库上可以融合两个数据库引擎来进行SQL的处理,将这一切简单化。
duckdb_test=> SELECT rds_duckdb.refresh_duckdb_table('test_table'); duckdb_test=> select count(*) from test_table; count ---------- 10000000 (1 row) Time: 622.994 ms duckdb_test=> SET rds_duckdb.execution = on; SET Time: 3.626 ms duckdb_test=> select count(*) from test_table; count ---------- 10000000 (1 row) Time: 12.148 ms duckdb_test=> drop extension rds_duckdb; DROP EXTENSION Time: 11.483 ms duckdb_test=> create extension rds_duckdb; CREATE EXTENSION Time: 54.836 ms duckdb_test=> SELECT rds_duckdb.duckdb_version(); WARNING: Trying to execute an operation with non-duckdb tables((null)), fallback to PG. WARNING: If you don't want to use DuckDB anymore, set rds_duckdb.execution = off; duckdb_version ---------------- v1.1.1 (1 row) Time: 3.968 ms