外链

Flink1.12支持对接Atlas【使用Atlas收集Flink元数据】

Flink1.12新特性之Flink SQL中时态表(Temporal Tables)说明和总结image.png

  • Flink 1.11 有了动态表的概念
    • 周期做连续查询,查询不会终止
    • 由于数据没有尽头,查询结果可能永远不一样 (产出的类似于中间结果)
    • 连续查询将持续计算并将变化反应到结果 Result
  • 版本表

    • 定义了主键约束事件时间属性的表就是版本表
      1. -- 定义一张版本表
      2. CREATE TABLE product_changelog (
      3. product_id STRING,
      4. product_name STRING,
      5. product_price DECIMAL(10, 4),
      6. update_time TIMESTAMP(3) METADATA FROM 'value.source.timestamp' VIRTUAL,
      7. PRIMARY KEY(product_id) NOT ENFORCED, -- (1) 定义主键约束
      8. WATERMARK FOR update_time AS update_time -- (2) 通过 watermark 定义事件时间
      9. ) WITH (
      10. 'connector' = 'kafka',
      11. 'topic' = 'products',
      12. 'scan.startup.mode' = 'earliest-offset',
      13. 'properties.bootstrap.servers' = 'localhost:9092',
      14. 'value.format' = 'debezium-json'
      15. );
  • 普通表

    1. -- DDL 定义一张 HBase 表,然后我们可以在 SQL 中将其当作一张时态表使用
    2. -- 'currency' 列是 HBase 表中的 rowKey
    3. CREATE TABLE LatestRates (
    4. currency STRING,
    5. fam1 ROW<rate DOUBLE>
    6. ) WITH (
    7. 'connector' = 'hbase-1.4',
    8. 'table-name' = 'rates',
    9. 'zookeeper.quorum' = 'localhost:2181'
    10. );
  • 两种表的区别

    版本表保留了表在各个时间段的版本,而普通表则只保留该表最新的一份数据。

    • 个人感觉 明确了时间段版本的内容后 可以做一些回溯操作
    • 保留各个时间段的版本 占用额外空间 普通表减少空间
  • 版本视图表

    在流上,我们往往得到的是一个append-only流,这意味着我们无法定义PRIMARY KEY,但是,我们很清楚该表具有定义版本表的所有必要信息,所以我们可以通过Flink SQL提供的DISTINCT做去重处理,去重查询可以产出一个有序的 changelog 流。

    • 去重查询能够推断主键并保留原始数据流的事件时间属性,如下:

  1. SELECT * FROM RatesHistory;
  2. currency_time currency rate
  3. ============= ========= ====
  4. 09:00:00 US Dollar 102
  5. 09:00:00 Euro 114
  6. 09:00:00 Yen 1
  7. 10:45:00 Euro 116
  8. 11:15:00 Euro 119
  9. 11:49:00 Pounds 108
  10. -- 视图中的去重 query 会被 Flink 优化并高效地产出 changelog stream, 产出的 changelog 保留了主键约束和事件时间。
  11. CREATE VIEW versioned_rates AS
  12. SELECT currency, rate, currency_time -- (1) `currency_time` 保留了事件时间
  13. FROM (
  14. SELECT *,
  15. ROW_NUMBER() OVER (PARTITION BY currency -- (2) `currency` 是去重 query unique key,可以作为主键
  16. ORDER BY currency_time DESC) AS rowNum
  17. FROM RatesHistory )
  18. WHERE rowNum = 1;
  19. -- 视图 `versioned_rates` 将会产出如下的 changelog:
  20. (changelog kind) currency_time currency rate
  21. ================ ============= ========= ====
  22. +(INSERT) 09:00:00 US Dollar 102
  23. +(INSERT) 09:00:00 Euro 114
  24. +(INSERT) 09:00:00 Yen 1
  25. +(UPDATE_AFTER) 10:45:00 Euro 116
  26. +(UPDATE_AFTER) 11:15:00 Euro 119
  27. +(INSERT) 11:49:00 Pounds 108

链接:https://www.jianshu.com/p/733a53bcb9b9

Other

  • 了解 Atlas 元数据管理工具
  • 专业名词: 物化视图、物化视图

  • 广告投放出去

    • 点击率是多少
    • 转化率是多少
    • BI (商业智能) 做敏捷性调整
  • ClickHouseMergeTree 特性
    • 相同的数据放在一起进行数据聚合操作
    • 问题是: 小文件太多 Block 块太多

ATLAS

image.png

image.png

  • Atlas在Hadoop环境中作为独立服务运行。
  • 许多Hadoop数据处理和存储服务都包含Atlas附加组件,这些附加组件将服务活动的元数据发布到Kafka消息主题中。
  • Atlas读取消息并将其存储在JanusGraph中以对实体之间的关系建模。
  • JanusGraph背后的数据存储区是HBase。
  • Atlas将搜索索引存储在Solr中,以利用Solr的搜索功能。

视频

净空法师谈: AV女優拍攝A片、艺人拍色情电影和穿着曝露的果报

净空法师开示 贪恋女色导致前途毁灭?

净空法师开示 淫欲丧身害命

净空法师 :怨天尤人和色情泛滥

陈大惠:正常人行房可以多少次?脑脊液下流

陈大惠老师:色情泛滥对现代人的伤害


  • 财色名食睡
  • 人性本善
  • 孝养父母,奉事师长,慈心不杀,修十善业
  1. 一不杀生。 二不偷盗。 三不邪淫。 四不妄言。 五不绮语。 六不两舌。 七不恶口。八不悭贪。 九不嗔恚。 十不邪见。
  • 你在不懂事 (还没有能力辨别是非邪正的时候) 要受约束, 智慧开了约束就没有了,才得到自在了。
  • 若遇邪淫者,说雀鸽鸳鸯报. —> 畜生道

博客

Hive stage划分


问题

MySQL数据库中统计一个库中的所有表的行数?

  • 这个只能给出一个大致的结果 并不准确
    1. mysql> use information_schema;
    2. Database changed
    3. mysql> select table_name,table_rows from tables where TABLE_SCHEMA = 'databaseName'order by table_rows desc;
    MySQL获取数据库每个表的行数

新开一门 [进修课]