外链
Flink1.12支持对接Atlas【使用Atlas收集Flink元数据】
Flink1.12新特性之Flink SQL中时态表(Temporal Tables)说明和总结
- Flink 1.11 有了动态表的概念
- 周期做连续查询,查询不会终止
- 由于数据没有尽头,查询结果可能永远不一样 (产出的类似于中间结果)
- 连续查询将持续计算并将变化反应到结果
Result
中
版本表
- 定义了主键约束和事件时间属性的表就是版本表
-- 定义一张版本表
CREATE TABLE product_changelog (
product_id STRING,
product_name STRING,
product_price DECIMAL(10, 4),
update_time TIMESTAMP(3) METADATA FROM 'value.source.timestamp' VIRTUAL,
PRIMARY KEY(product_id) NOT ENFORCED, -- (1) 定义主键约束
WATERMARK FOR update_time AS update_time -- (2) 通过 watermark 定义事件时间
) WITH (
'connector' = 'kafka',
'topic' = 'products',
'scan.startup.mode' = 'earliest-offset',
'properties.bootstrap.servers' = 'localhost:9092',
'value.format' = 'debezium-json'
);
- 定义了主键约束和事件时间属性的表就是版本表
普通表
-- 用 DDL 定义一张 HBase 表,然后我们可以在 SQL 中将其当作一张时态表使用
-- 'currency' 列是 HBase 表中的 rowKey
CREATE TABLE LatestRates (
currency STRING,
fam1 ROW<rate DOUBLE>
) WITH (
'connector' = 'hbase-1.4',
'table-name' = 'rates',
'zookeeper.quorum' = 'localhost:2181'
);
两种表的区别
版本表保留了表在各个时间段的版本,而普通表则只保留该表最新的一份数据。
- 个人感觉 明确了时间段版本的内容后 可以做一些回溯操作
- 保留各个时间段的版本 占用额外空间 普通表减少空间
- 版本视图表
在流上,我们往往得到的是一个append-only流,这意味着我们无法定义PRIMARY KEY,但是,我们很清楚该表具有定义版本表的所有必要信息,所以我们可以通过Flink SQL提供的DISTINCT做去重处理,去重查询可以产出一个有序的 changelog 流。
- 去重查询能够推断主键并保留原始数据流的事件时间属性,如下:
SELECT * FROM RatesHistory;
currency_time currency rate
============= ========= ====
09:00:00 US Dollar 102
09:00:00 Euro 114
09:00:00 Yen 1
10:45:00 Euro 116
11:15:00 Euro 119
11:49:00 Pounds 108
-- 视图中的去重 query 会被 Flink 优化并高效地产出 changelog stream, 产出的 changelog 保留了主键约束和事件时间。
CREATE VIEW versioned_rates AS
SELECT currency, rate, currency_time -- (1) `currency_time` 保留了事件时间
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY currency -- (2) `currency` 是去重 query 的 unique key,可以作为主键
ORDER BY currency_time DESC) AS rowNum
FROM RatesHistory )
WHERE rowNum = 1;
-- 视图 `versioned_rates` 将会产出如下的 changelog:
(changelog kind) currency_time currency rate
================ ============= ========= ====
+(INSERT) 09:00:00 US Dollar 102
+(INSERT) 09:00:00 Euro 114
+(INSERT) 09:00:00 Yen 1
+(UPDATE_AFTER) 10:45:00 Euro 116
+(UPDATE_AFTER) 11:15:00 Euro 119
+(INSERT) 11:49:00 Pounds 108
链接:https://www.jianshu.com/p/733a53bcb9b9
Other
- 了解
Atlas
元数据管理工具 专业名词: 物化视图、物化视图
广告投放出去
- 点击率是多少
- 转化率是多少
- BI (商业智能) 做敏捷性调整
ClickHouse
的MergeTree
特性- 相同的数据放在一起进行数据聚合操作
- 问题是: 小文件太多 Block 块太多
ATLAS
- Atlas在Hadoop环境中作为独立服务运行。
- 许多Hadoop数据处理和存储服务都包含Atlas附加组件,这些附加组件将服务活动的元数据发布到Kafka消息主题中。
- Atlas读取消息并将其存储在JanusGraph中以对实体之间的关系建模。
- JanusGraph背后的数据存储区是HBase。
- Atlas将搜索索引存储在Solr中,以利用Solr的搜索功能。
视频
净空法师谈: AV女優拍攝A片、艺人拍色情电影和穿着曝露的果报
净空法师开示 贪恋女色导致前途毁灭?
净空法师开示 淫欲丧身害命
净空法师 :怨天尤人和色情泛滥
陈大惠:正常人行房可以多少次?脑脊液下流
陈大惠老师:色情泛滥对现代人的伤害
- 财色名食睡
- 人性本善
- 孝养父母,奉事师长,慈心不杀,修十善业
- 一不杀生。 二不偷盗。 三不邪淫。 四不妄言。 五不绮语。 六不两舌。 七不恶口。八不悭贪。 九不嗔恚。 十不邪见。
- 你在不懂事 (还没有能力辨别是非邪正的时候) 要受约束, 智慧开了约束就没有了,才得到自在了。
- 若遇邪淫者,说雀鸽鸳鸯报. —> 畜生道
博客
问题
- 这个只能给出一个大致的结果 并不准确
MySQL获取数据库每个表的行数mysql> use information_schema;
Database changed
mysql> select table_name,table_rows from tables where TABLE_SCHEMA = 'databaseName'order by table_rows desc;
新开一门 [进修课]