本文为您介绍交互式分析Hologres维表DDL定义、WITH参数、CACHE参数和代码示例。
什么是交互式分析Hologres
交互式分析Hologres兼容PostgreSQL协议,与大数据生态紧密连接,支持高并发、低延时实时分析处理PB级数据,让您轻松使用现有BI(Business Intelligence)工具对数据进行多维分析和业务探索。
使用限制
- 创建Hologres维表时建议选择行存模式,列存模式对于点查场景性能开销较大。
选择行存模式创建维表时必须设置主键,并且将主键设置为clustering key才可以工作。示例语句如下:
begin; create table test(a int primary key, b text, c text, d float8, e int8); call set_table_property('test', 'orientation', 'row'); call set_table_property('test', 'clustering_key', 'a'); commit;
- Hologres维表的主键必须是Flink Join On的字段,Flink Join On的字段也必须是维表完整的主键字段,两者必须完全匹配。
- Hologres Flink Connector的维表功能不支持一对多的输出。
DDL定义
CREATE TABLE hologres_dim(
id INT,
len INT,
content VARCHAR
) with (
'connector'='hologres',
'dbname'='<yourDbname>',
'tablename'='<yourTablename>',
'username'='<yourUsername>',
'password'='<yourPassword>',
'endpoint'='<yourEndpoint>'
);
WITH参数
参数 | 说明 | 是否必填 | 备注 |
---|---|---|---|
connector | 维表类型 | 是 | 固定值为hologres (小写)。
|
endPoint | hologres endpoint | 是 | 详情请参见访问域名。 |
tablename | 表名 | 是 | 无 |
dbname | 数据库名 | 是 | 无 |
username | 用户名,请填写阿里云账号的AccessKey ID。 | 是 | 无 |
password | 密码,请填写阿里云账号的AccessKey Secret。 | 否 | 无 |
CACHE参数
参数 | 说明 | 是否必填 | 备注 |
---|---|---|---|
cache | 缓存策略 | 否 | Hologres仅支持以下两种缓存策略:
|
cacheSize | 缓存大小 | 否 | 选择LRU 缓存策略后,可以设置缓存大小,默认值为10000行。
|
cacheTTLMs | 缓存更新时间间隔 | 否 | 当选择LRU缓存策略后,可以设置缓存失效的超时时间,默认不过期。 |
async | 是否异步同步数据。 | 否 | 取值如下:
|
类型映射
Hologres字段类型 | Flink字段类型 |
---|---|
INT | INT |
INT[] | ARRAY |
BIGINT | BIGINT |
BIGINT[] | ARRAY |
REAL | FLOAT |
REAL[] | ARRAY |
DOUBLE PRECISION | DOUBLE |
DOUBLE PRECISION[] | ARRAY |
BOOLEAN | BOOLEAN |
BOOLEAN[] | ARRAY |
TEXT | VARCHAR |
TEXT[] | ARRAY |
NUMERIC | DECIMAL |
DATE | DATE |
TIMESTAMP WITH TIMEZONE | TIMESTAMP |
说明 上表中未列出的Hologres类型,Connector还未支持转换。
代码示例
CREATE TEMPORARY TABLE datagen_source (
a INT,
b BIGINT,
c STRING,
proctime AS PROCTIME()
) with (
'connector' = 'datagen'
);
CREATE TEMPORARY TABLE hologres_dim (
a INT,
b VARCHAR,
c VARCHAR
) with (
'connector' = 'hologres',
...
);
CREATE TEMPORARY TABLE blackhole_sink (
a INT,
b STRING
) with (
'connector' = 'blackhole'
);
insert into blackhole_sink select T.a,H.b
FROM datagen_source AS T JOIN hologres_dim FOR SYSTEM_TIME AS OF T.proctime AS H ON T.a = H.a;
在文档使用中是否遇到以下问题
更多建议
匿名提交