.fdt 文件保存了原始的 field 信息
.fdx 文件保存了一些帮助读取 fdt 的索引信息
.fdm 文件保存了一些基本的元数据,也包括一些辅助读取 fdx 文件的信息。
IndexHeader 索引文件头 lucene 对于索引文件,会写一个文件头,来标识一些基本的数据。
CodecHeader: 一个编码的 Header.
Magic: 一个魔法数字,永远是:0x3fd76c17.
CodecName: 当前编码的名字,比如对于当前的 fdm 文件时:”Lucene85FieldsIndexMeta”
Version: 一个内部的版本号,不是 lucene 版本号哦。
SegmentID: 当前 Segment 的 ID, 随机生成的 16 位字符串
SegmentSuffix: 当前 Segment 的后缀
===============================================================
ChunSize 每个 Chunk 中的 doc 数量
Version 版本号
NumDocs: doc 数量的总数
BlockShift: 控制 chunk 信息写入时的分块,2 ^ blockShift 为一块。
totalChunks: 总共有多少个 chunk
ChunkDocsNumIndex: 存储每个 chunk 中 doc 数量的内容,在 fdx 文件中的起始偏移位置
================================================================
ChunksDocsNumMeta: fdx 文件中存储 Chunk 中 doc 数量,用到的一些元数据
在fdx文件中,存储每个 chunk 中的doc数量时,使用了DirectMonotonicWriter类来进行存储,这个类用来存储单调递增数组,能够进行一些压缩。
为了完成压缩的功能,需要一些数字进行辅助,就是下面这几位咯。
- Min : 通过编码计算的最小值
- AvgInc: 通过编码计算的平均斜率
- ChunDocsNumIndex: 从开始写入到现在,fdx 文件的偏移量
- BitRequired: 所有要写入的数字,最大需要多少位才能存储
===================================================================
ChunkStartIndex: 存储每个 chunk 数据起始位置数据的起始位置
==================================================================
ChunkStartPointMeta: 存储每个 chunk 数据起始位置的一些元数据
在储存每个 chunk 的数据在 fdx 文件中的起始位置的相关数据时,和上面的 chunk 内 doc 数量一样,做了一些压缩~
- Min : 通过编码计算的最小值 - AvgInc: 通过编码计算的平均斜率 - ChunDocsNumIndex: 从开始写入到现在,fdx 文件的偏移量 - BitRequired: 所有要写入的数字,最大需要多少位才能存储
=========================================================
StartPointEndPoint: 存储每个 chunk 数据起始位置的数据的结束位置。
MaxPoint: fdx 的最大写入位置
numDirtyChunks: 脏的 chunk 的数量,当 chunk 并没有到达数量,而是强行进行 finish, 那么相关的 chunk 和 doc 就是 dirty 的。这两个变量记录了一下相关的数量。
numDirtyDocs: 脏的 doc 的数量
footer: 索引文件的脚部
CSS Peek这个Visual Studio Code插件扩展了 HTML 和 ejs 代码编辑,包括对源代码中字符串中的 css/scss/less (类和 id)的 Go To Definition 和 Go To Symbol in Workspace 支持。
CSS Peek - Visual Studio Marketplace
一图了解redis的应用场景。
Redis不仅仅只是用来做缓存。如图所示,Redis可以用于各种场景。
1、String
1.1、Session(会话):我们可以使用Redis在不同的服务之间共享用户会话数据。
1.2、Cache(缓存):我们可以使用Redis缓存对象或页面,特别是热点数据。
1.3、Distributed lock(分布式锁):我们可以使用Redis的String在分布式服务中获取锁。
2、Int
2.1、Counter(计数器):我们可以计算文章的点赞量和阅读量。
2.2、Rate limiter(限流器):我们可以对特定的用户ip使用速率限制。
2.3、Global ID(全局ID):我们可以使用Redis的Int来作为全局唯一性的ID。
3、Hash
3.1、Shopping cart(购物车):我们可以使用Redis的Hash来表示购物车中的键值对。
4、Bitmap
4.1、Calculate user retention(计算用户留存率):我们可以用Bitmap来表示用户每天的登录情况,并计算用户留存率。
5、List
5.1、Message queue(消息队列):我们可以将List用于消息队列。
6、ZSet
6.1、Ranking(排行):我们可以使用ZSet对文章进行排序。
分享歌词:
久度 - 赌
作词:久度
作曲:Jacoo
You have your sorrow seen grading your skin
Let me pull the last string
for the last time
For the last time
选择你还是选择了他
选择了雨露还是选择流沙
选择了把自己保护
做人群里的少数
选择用十年的草木
埋葬那冬日的梨花
选择和朝阳一同落下
选择把真诚摆上了货架
登上末日的方舟
撕裂那岁月与春秋
不惧怕死神和你共坐下
驶向黑暗的底部
去感受无力的抵触
当你在人群里最醒目
便是宿命给你的礼物
有时也想和你说说话
也想知道你心有多大
当内心的田野
用伪善的血液来灌溉
当天真的孩童
从事着私利的贩卖
当我把心室的隔膜
当着你的面撕开
直到最后一滴血滴下
你说这算不算爱
Without your worries
Your standing's so still
Let me come and save
for the last time
For the last time
多想在深海里溺亡
誓不做无趣的皮囊
纷葛都弃置在一旁
无人能触及的地方
枯石中汲取着营养
无灯的黑夜最晴朗
多少次把你放心上
纸上写下半个竖心旁
你我不过是一粒尘埃
却想在平淡里盛开
多希望有一方天地
却怪梦想住的太偏僻
为什么一直想远离
在自己身上找原因
有没有用尽了全心
还是说毕竟太年轻
只能去书本里找自己
思考过什么才是好字句
黑与白别颠倒次序
古人留下多少字迹
写满了一张白纸
又翻过一页
学会和自己独处
才能胜过一切
固执的自己
仍然执迷不悟
但面对现实或多或少
还是无助
唉还是不知自己该去哪处
自言自语的废话
那先就此打住
来自久度的单曲《赌》:网页链接 (@酷狗音乐)
以前要实时采集MySQL的表数据 要用canal 配置非常麻烦 有了flink cdc 只需要写几个SQL就能把MySQL的实时数据变动采集,并做加工
先在MySQL中授权
CREATE USER 'cdc'@'%' IDENTIFIED BY 'cdc';
GRANT SELECt, SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'cdc'@'%' IDENTIFIED BY 'cdc';
cdc这个用户可以做replicate
定义源头表,是从mysql binlog来.
CREATE TEMPORARY TABLE orders (
order_id INT,
order_date TIMESTAMP(0),
customer_name STRING,
price DECIMAL(10, 5),
product_id INT,
order_status BOOLEAN,
PRIMARY KEY(order_id) NOT ENFORCED
) WITH (
'connector' = 'mysql-cdc',
'hostname' = '10.66.1.49',
'port' = '3306',
'username' = 'cdc',
'password' = 'cdc',
'database-name' = 'core',
'table-name' = 'orders');
定义目的表,这儿我是直接打印.
CREATE TEMPORARY TABLE print_table (
order_id INT,
order_date TIMESTAMP(0),
customer_name STRING,
price DECIMAL(10, 5),
product_id INT,
order_status BOOLEAN
) WITH (
'connector' = 'print'
);
直接插入
insert into print_table SELECT * FROM orders;
#flink# #mysql#