最新要闻
- 厦门钨业于云南新设科技发展子公司:企查查APP显示,近日,云南厦钨科技发展有限公司成立,注册资本100万元,经营范围包含 全球热文
- 全球热头条丨电池原材料价格大跌坑到宁王?宁德时代回应
- 天天快讯:每小时1000公里 !我国“高速飞车”研制取得新进展
- 每日热讯!马斯克请回来的4D成像雷达 百度小米蔚来也押注了:战况很激烈
- 《天宫之镜》上线:首次慢直播中国空间站-天天实时
- 每日焦点!同飞股份4月24日盘中涨幅达5%
- 最后时刻单防福克斯!追梦:如果这让你感觉不好 我很抱歉
- 北京国际电影节有哪些看点?
- 最新:美国迪士尼乐园13米巨龙起火 观众还以为是新节目
- 全球速看:酷派COOL30 Pro来了:LCD水滴屏+2.4GHz八核CPU
- 特斯拉市值一周蒸发逾5000亿 分析师补刀:还能跌85%
- 一加Ace 2原神定制礼盒太火爆!3699元首销售罄
- 新资讯:全球连线|菲律宾榴莲加速进军中国
- 焦点观察:国泰4月24日起送2.7万张免费机票,附参加方法
- 天天热文:漯河郾城区新店镇:打好“三张牌” 聚力招商引资新突破
- 今日热闻!14款新车哪个最拉胯?中保研新一轮测试成绩公布:结果惊人
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
快看点丨技术干货|如何利用 ChunJun 实现数据实时同步?
实时同步是 ChunJun 的⼀个重要特性,指在数据同步过程中,数据源与⽬标系统之间的数据传输和更新⼏乎在同⼀时间进⾏。
(资料图片仅供参考)
在实时同步场景中我们更加关注源端,当源系统中的数据发⽣变化时,这些变化会⽴即传输并应⽤到⽬标系统,以保证两个系统中的数据保持⼀致。这个特性需要作业运⾏过程中 source 插件不间断地频繁访问源端。在⽣产场景下,对于这类⻓时间运⾏、资源可预估、需要稳定性的作业,我们推荐使⽤ perjob 模式部署。
插件⽀持 JSON 脚本和 SQL 脚本两种配置⽅式,具体的参数配置请参考「ChunJun连接器文档」:https://sourl.cn/vxq6Zp
本文将为大家介绍如何使用 ChunJun 实时同步,以及 ChunJun ⽀持的 RDB 实时采集插件的特性、采集逻辑及其原理,帮助大家更好地理解 ChunJun 与实时同步。
如何使用 ChunJun 实时同步
为了让⼤家能更深⼊了解如何使⽤ ChunJun 做实时同步,我们假设有这样⼀个场景:⼀个电商⽹站希望将其订单数据从 MySQL 数据库实时同步到 HBase 数据库,以便于后续的数据分析和处理。
在这个场景中,我们将使⽤ Kafka 作为中间消息队列,以实现 MySQL 和 HBase 之间的数据同步。这样做的好处是 MySQL 表中变更可以实时同步到 HBase 结果表中,⽽不⽤担⼼历史数据被修改后 HBase 表未被同步。
如果在⼤家的实际应用场景中,不关⼼历史数据是否变更(或者历史数据根本不会变更),且业务表有⼀个递增的主键,那么可以参考本⽂之后的 JDBC-Polling 模式⼀节的内容。
· 数据源组件的部署以及 ChunJun 的部署这⾥不做详细描述
· 案例中的脚本均以 SQL 脚本为例,JSON 脚本也能实现相同功能,但在参数名上可能存在出⼊,使⽤ JSON 的同学可以参考上文 「ChunJun 连接器」⽂档中的参数介绍
采集 MySQL 数据到 Kafka
● 数据准备
⾸先,我们在 Kafka 中创建⼀个名为 order_dml 的 topic,然后在 MySQL 中创建⼀个订单表,并插⼊⼀些测试数据。创建表的 SQL 语句如下:
-- 创建⼀个名为ecommerce_db的数据库,⽤于存储电商⽹站的数据CREATE DATABASE IF NOT EXISTS ecommerce_db;USE ecommerce_db;-- 创建⼀个名为orders的表,⽤于存储订单信息CREATE TABLE IF NOT EXISTS orders ( id INT AUTO_INCREMENT PRIMARY KEY, -- ⾃增主键 order_id VARCHAR(50) NOT NULL, -- 订单编号,不能为空 user_id INT NOT NULL, -- ⽤户ID,不能为空 product_id INT NOT NULL, -- 产品ID,不能为空 quantity INT NOT NULL, -- 订购数量,不能为空 order_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP -- 订单⽇期,默认值为当前时间戳,不能为空);-- 插⼊⼀些测试数据到orders表INSERT INTO orders (order_id, user_id, product_id, quantity) VALUES ("ORD123", 1, 101, 2), ("ORD124", 2, 102, 1), ("ORD125", 3, 103, 3), ("ORD126", 1, 104, 1), ("ORD127", 2, 105, 5);
● 使用 Binlog 插件采集数据到 Kafka
为了表示数据的变化类型和更好地处理数据变化,实时采集插件一般会用 RowData(Flink 内部数据结构)中的 RowKind 记录⽇志中的数据事件(insert、delete 等)类型,binlog 插件也⼀样。而当数据被打到 Kafka 中时,RowKind 信息应该怎么处理呢?
这⾥我们就需要⽤到 upsert-kafka-x,upsert-kafka-x 会识别 RowKind。对各类时间的处理逻辑如下:
• insert 数据:序列化后直接打⼊
• delete 数据:只写 key,value 置为 null
• update 数据:分为⼀条 delete 数据和 insert 数据处理,即先根据主键删除原本的数据,再写⼊ update 后的数据
在下⼀步中我们再解释如何将 Kafka 中的数据还原到 HBase 或者其他⽀持 upsert 语义的数据库中,接下来我们来编写 SQL 脚本,实现 MySQL 数据实时采集到 Kafka 中的功能,示例如下:
CREATE TABLE binlog_source ( id int, order_id STRING, user_id INT, product_id int, quantity int, order_date TIMESTAMP(3) ) WITH ( "connector" = "binlog-x", "username" = "root", "password" = "root", "cat" = "insert,delete,update", "url" = "jdbc:mysql://localhost:3306/ecommerce_db?useSSL=false", "host" = "localhost", "port" = "3306", "table" = "ecommerce_db.orders", "timestamp-format.standard" = "SQL", "scan.parallelism" = "1" ); CREATE TABLE kafka_sink ( id int, order_id STRING, user_id INT, product_id int, quantity int, order_date TIMESTAMP(3),PRIMARY KEY (id) NOT ENFORCED ) WITH ( "connector" = "upsert-kafka-x", "topic" = "orders", "properties.bootstrap.servers" = "localhost:9092", "key.format" = "json", "value.format" = "json", "value.fields-include" = "ALL", "sink.parallelism" = "1" ); insert into kafka_sink select * from binlog_source u;
还原 Kafka 中的数据到 HBase
上述步骤中,我们通过 binlog-x 和 upsert-kafka-x,将 MySQL 中的数据实时采集到了 Kafka 中。解铃还须系铃⼈,我们可以通过 upsert-kafka-x 再去将 Kafka 中的数据解析成带有 upsert 语义的数据。
upsert-kafka-x 作为 source 插件时,会判断 Kafka 中数据的 value 是否为 null,如果 value 为 null 则标记这条数据的 RowKind 为 DELETE,否则将数据的 ROWKIND 标记为 INSERT。
ChunJun的 hbase-x 插件⽬前已经具备了 upsert 语句的能⼒,使⽤ hbase-x 即可将 Kafka 中的数据还原到 hbase中。接下来是 SQL 脚本示例,为了⽅便在 HBase 中查看数据结果,我们将 int 数据 cast 为 string 类型:
CREATE TABLE kafka_source ( id int, order_id STRING, user_id INT, product_id INT, quantity INT, order_date TIMESTAMP(3), PRIMARY KEY (id) NOT ENFORCED ) WITH ( "connector" = "upsert-kafka-x", "topic" = "orders", "properties.bootstrap.servers" = "localhost:9092", "properties.group.id" = "test_group", "key.format" = "json", "value.format" = "json", "scan.parallelism" = "1" ); CREATE TABLE hbase_sink( rowkey STRING, order_info ROW < order_id STRING, user_id STRING, product_id STRING, quantity STRING, order_date STRING >, PRIMARY KEY (rowkey) NOT ENFORCED ) WITH( -- 这⾥以hbase14为例,如果hbase版本是2.x,我们可以使⽤hbase2-x插件代替 "connector" = "hbase14-x", "zookeeper.quorum" = "localhost:2181", "zookeeper.znode.parent" = "/hbase", "table-name" = "ecommerce_db:orders", "sink.parallelism" = "1" ); INSERT INTO hbase_sink SELECT cast(id as STRING), ROW( cast(order_id as STRING), cast(user_id as STRING), cast(product_id as STRING), cast(quantity as STRING), cast(order_date as STRING) ) FROM kafka_source
Tips:如果我们不需要 Kafka 中间件,也可以使⽤ binlog-x 插件直接对接 hbase-x 插件。
ChunJun 支持的 RDB 实时采集插件
本节主要介绍 ChunJun 的 RDB 实时采集插件的特性、采集逻辑及其原理。
ChunJun 的 RDB 实时采集可以实时监视数据库中的更改,并在发⽣更改时读取数据变化,例如插⼊、更新和删除操作。使⽤ ChunJun 实时采集,我们可以实时获取有关数据库中更改的信息,从⽽能够及时响应这些更改,如此便可以帮助我们更好地管理和利⽤ RDB 数据库中的数据。
并且 ChunJun 提供了故障恢复和断点续传功能来确保数据的完整性。ChunJun 实时采集类插件的⼤致实现步骤如下:
· 连接数据库,确认读取点位,读取点位可以理解为⼀个 offset,如 Binlog 中,指⽇志的⽂件名和⽂件的 position 信息
· 根据读取点位开始读取 redolog,获取其中关于数据变更相关的操作记录
· 根据 tableName、操作事件(如insert、delete、update)等过滤信息过滤出需要的 log ⽇志
· 解析 log ⽇志,解析后的事件信息包括表名、数据库名、操作类型(插⼊、更新或删除)和变更的数据⾏等
· 将解析出来的数据会加⼯为 ChunJun 内部统⼀的 DdlRowData 供下游使⽤
ChunJun ⽬前已⽀持的实时采集 Connector 有:binlog(mysql)、oceanbasecdc、oraclelogminer、sqlservercdc。
Binlog 简介
ChunJun binlog 插件的主要功能是读取 MySQL 的⼆进制⽇志(binlog)⽂件。这些⽂件记录了所有对数据的更改操作,如插⼊、更新和删除等。⽬前,该插件依赖 Canal 组件来读取 MySQL 的 binlog ⽂件。
核⼼操作步骤如下:
• 确认读取点位:在 binlog 插件中,我们可以在脚本的 start 字段中直接指定 journal-name(binlog ⽂件名)和 position(⽂件的特定位置)
• 读取binlog:binlog 插件将⾃身伪装成 MySQL 的 Slave 节点,向 MySQL Master 发送请求,要求将 binlog ⽂件的数据流发送给它
• 故障恢复和断点续传:故障时,插件会记录当前的 binlog 位置信息,从 checkpoint/savepoint 恢复后,我们可以从上次记录的位置继续读取 binlog ⽂件,确保数据变化的完整性
使⽤ binlog 所需的权限在「binlog插件使⽤⽂档」中有详细说明,链接如下:
https://sourl.cn/mvae9m
OracleLogminer 简介
Logminer 插件借助 Oracle 提供的 Logminer ⼯具通过读取视图的⽅式获取 Oracle redolog 中的信息。
核⼼操作步骤如下:
01 定位需读取起始点位(start_scn)
⽬前 logminer ⽀持四种策略指定 StartScn:
· all:从 Oracle 数据库中最早的归档⽇志组开始采集(不建议使⽤)
· current:任务运⾏时的 SCN 号
· time:指定时间点对应的 SCN 号
· scn:直接指定 SCN 号
02 定位需要读取的结束点位(end_scn)
插件根据 start_scn 和 maxLogFileSize(默认5G)获取可加载的 redolog ⽂件列表,end_scn 取这个⽂件列表中最⼤的 scn 值。
03 加载 redo ⽇志到 Logminer
通过⼀个存储过程,将 scn 区间范围内的 redolog 加载到 Logminer ⾥。
04 从视图中读取数据
以 scn > ? 作为 where 条件直接查询 v$logmnr_contents 视图内的信息即可获取 redolog 中的数据。
05 重复1-4步骤,实现不断的读取
如标题。
06 故障恢复和断点续传
在发⽣故障时,插件会保存当前消费的 scn 号,重启时从上次的 scn 号开始读取,确保数据完整性。
• 关于该插件原理的详细介绍请参⻅「Oracle Logminer 实现原理说明⽂档」:
https://sourl.cn/6vqz4b
• 使⽤lominer插件的前提条件详⻅「Oracle配置LogMiner」:
https://sourl.cn/eteyZY
SqlServerCDC 简介
SqlServerCDC 插件依赖 SQL Server 的 CDC Agent 服务提供的视图获取 redolog 中的信息。
核⼼操作步骤如下:
01 定位需读取起始点位(from_lsn)
⽬前 SqlserverCDC 仅⽀持直接配置 lsn 号,如果 lsn 号未配置,则取数据库中当前最⼤的 lsn 号为 from_lsn。
02 定位需要读取的结束点位(to_lsn)
SqlserverCDC 插件定期地(可通过 pollInterval 参数指定)获取数据库中的最⼤ lsn 为 end_lsn。
03 从视图中读取数据
查询 Agent 服务提供的视图中 lsn 区间范围内的数据,过滤出需要监听的表及事件类型。
04 重复1-3步骤,实现不断的读取
如标题。
05 故障恢复和断点续传
在发⽣故障时,插件会保存当前消费的 lsn 号。重启时从上次的 lsn 号开始读取,确保数据完整性。
• 关于该插件原理的详细介绍请参⻅「Sqlserver CDC 实现原理说明⽂档」:
https://sourl.cn/5pQvEM
• 配置 SqlServer CDC Agent 服务详⻅「Sqlserver 配置 CDC ⽂档」:
https://sourl.cn/h5nd8j
OceanBaseCDC 简介
OceanBase 是蚂蚁集团开源的⼀款分布式关系型数据库,它使⽤⼆进制⽇志(binlog)记录数据变更。OceanBaseCDC 的实现依赖于 OceanBase 提供的 LogProxy 服务,LogProxy 提供了基于发布-订阅模型的服务,允许使⽤ OceanBase 的 logclient 订阅特定的 binlog 数据流。
OceanBaseCDC 启动⼀个 Listener 线程。当 logclient 连接到 LogProxy 后,Listener 会订阅经过数据过滤的 binlog,然后将其添加到内部维护的列表中。当收到 COMMIT 信息后,Listener 会将⽇志变更信息传递给⼀个阻塞队列,由主线程消费并将其转换为 ChunJun 内部的 DdlRowData,最终发送到下游。
JDBC-Polling 模式读
JDBC 插件的 polling 读取模式是基于 SQL 语句做数据读取的,相对于基于重做⽇志的实时采集成本更低,但 jdbc 插件做实时同步对业务场景有更⾼的要求:
· 有⼀个数值类型或者时间类型的递增主键
· 不更新历史数据或者不关⼼历史数据是否更新,仅关⼼新数据的获取
实现原理简介
• 设置递增的业务主键作为 polling 模式依赖的增量键
• 在增量读取的过程中,实时记录 increColumn 对应的值(state),作为下⼀次数据读取的起始点位
• 当⼀批数据读取完后,间隔⼀段时间之后依据 state 读取下⼀批数据
polling 依赖部分增量同步的逻辑,关于增量同步的更多介绍可以点击:
https://sourl.cn/UC8n6K
如何配置⼀个 jdbc-polling 作业
先介绍⼀下开启 polling 模式需要关注的配置项:
以 MySQL 为例,假设我们有⼀个存储订单信息的历史表,且订单的 order_id 是递增的,我们希望定期地获取这张表的新增数据。
CREATE TABLE order.realtime_order_archive ( order_id INT PRIMARY KEY COMMENT "订单唯⼀标识", customer_id INT COMMENT "客户唯⼀标识", product_id INT COMMENT "产品唯⼀标识", order_date TIMESTAMP COMMENT "订单⽇期和时间", payment_method VARCHAR(255) COMMENT "⽀付⽅式(信⽤卡、⽀付宝、微信⽀付等)", shipping_method VARCHAR(255) COMMENT "配送⽅式(顺丰速运、圆通速递等)", shipping_address VARCHAR(255) COMMENT "配送地址", order_total DECIMAL(10,2) COMMENT "订单总⾦额", discount DECIMAL(10,2) COMMENT "折扣⾦额", order_status VARCHAR(255) COMMENT "订单状态(已完成、已取消等)" );
我们可以这样配置 json 脚本的 reader 信息。
"name": "mysqlreader", "parameter": { "column" : [ "*" //这⾥假设我们读取所有字段,可以填写‘*’ ], "increColumn": "id", "polling": true, "pollingInterval": 3000, "username": "username", "password": "password", "connection": [ { "jdbcUrl": [ "jdbc:mysql://ip:3306/liuliu?useSSL=false" ], "schema":"order", "table": [ "realtime_order_archive" ] } ] } }
《数栈产品白皮书》:https://fs80.cn/cw0iw1
《数据治理行业实践白皮书》下载地址:https://fs80.cn/380a4b
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szbky
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术qun」,交流最新开源技术信息,qun号码:30537511,项目地址:https://github.com/DTStack
关键词:
-
盘点| 有哪些比较新的好用的React Native 开发工具? 天天最新
2015年,FaceBook首次开发并发布ReactNative框架,用于构建原始的移动应用程序。ReactNative的特点是使用Ja
来源: -
当前快看:python工具模块介绍-time 时间访问和转换
快速入门In[1]:importtime 获取当前时间In[25]:time strftime("%Y-%m-%d_%H-%M-%S",time localti
来源: -
厦门钨业于云南新设科技发展子公司:企查查APP显示,近日,云南厦钨科技发展有限公司成立,注册资本100万元,经营范围包含 全球热文
厦门钨业于云南新设科技发展子公司:企查查APP显示,近日,云南厦钨科技发展有限公司成立,注册资本100万元
来源: 盘点| 有哪些比较新的好用的React Native 开发工具? 天天最新
快看点丨技术干货|如何利用 ChunJun 实现数据实时同步?
当前快看:python工具模块介绍-time 时间访问和转换
厦门钨业于云南新设科技发展子公司:企查查APP显示,近日,云南厦钨科技发展有限公司成立,注册资本100万元,经营范围包含 全球热文
全球热头条丨电池原材料价格大跌坑到宁王?宁德时代回应
天天快讯:每小时1000公里 !我国“高速飞车”研制取得新进展
每日热讯!马斯克请回来的4D成像雷达 百度小米蔚来也押注了:战况很激烈
《天宫之镜》上线:首次慢直播中国空间站-天天实时
每日焦点!同飞股份4月24日盘中涨幅达5%
焦点报道:C#用dynamic一行代码实现反射操作
最后时刻单防福克斯!追梦:如果这让你感觉不好 我很抱歉
北京国际电影节有哪些看点?
最新:美国迪士尼乐园13米巨龙起火 观众还以为是新节目
全球速看:酷派COOL30 Pro来了:LCD水滴屏+2.4GHz八核CPU
特斯拉市值一周蒸发逾5000亿 分析师补刀:还能跌85%
一加Ace 2原神定制礼盒太火爆!3699元首销售罄
新资讯:全球连线|菲律宾榴莲加速进军中国
SpringSecurity框架教程-简介与SpringSecurity框架教程-入门案例准备工作_每日简讯
每日视讯:顶象推出应用隐私合规检测服务
如何用 DataTester 设计并创建可视化实验-全球微速讯
焦点观察:国泰4月24日起送2.7万张免费机票,附参加方法
天天热文:漯河郾城区新店镇:打好“三张牌” 聚力招商引资新突破
今日热闻!14款新车哪个最拉胯?中保研新一轮测试成绩公布:结果惊人
简讯:公司招聘运营称已婚双休未婚单休 求职者称歧视:网友热议没啥问题
宏碁发布史上最强迷你机圣盾X:i9-13900KS、RTX 4090无可挑剔|世界看热讯
微星推新BIOS限制7000X3D系列CPU电压 避免CPU毁损风险|天天视讯
世界快看点丨汽车级磷酸铁锂 针刺不起火!绿联、比亚迪户外电源3699元新低
新恒结衣的垣怎么念?新垣结衣个人介绍
中国第二大城市是哪个?中国第二大城市介绍
批准为荷是什么意思?批准为荷和批准为盼哪个更好?
孔雀蓝是什么颜色?孔雀蓝的rgb色值是多少?
任务管理器中的进程是什么意思?任务管理器中的进程怎么关闭?
MP3音乐文件破损是什么原因?MP3音乐文件破损怎么修复?
高血压的症状表现有哪些?高血压怎么调理才能彻底根除?
痛风一般有哪些症状?痛风会导致哪些严重后果?
可以用鼠标在电脑上写字的软件有哪些?怎么用鼠标拖动改变工作表标签的先后位置?
千与千寻迅雷下载 720p_千与千寻迅雷下载链接|环球快讯
Linux下Nginx安装证书_世界热门
2023最新kali安装教程 头条
分享一波免费可用的 API 大全|每日视点
笔记本怎么下载软件到桌面?笔记本怎么下载播放器?
环球今亮点!吃烧烤不应成为一场“战斗” 淄博在激流中需要保持清醒
世界球精选!一季度全国城镇新增就业297万人
环球滚动:景区完成特种设备隐患排查
全球热资讯!努比亚Z50把骁龙8 Gen2干到2500以内!倪飞:这才是旗舰焊门员
30寸巨屏+怀挡!别克全新君越内饰亮相:整车改头换面|报道
普通百姓也能用卫星遥感技术!这款手机APP快来了
全球观速讯丨李想:个人本意反对哨兵模式、延迟数月推出因考虑兼容车型
买了都说好!楠木之舟一体成型EVA拖鞋狂促:立省25元_环球视讯
归母净利润增幅超125% 铝合金精密压铸件龙头企业美利信登陆A股 最新快讯
使用nodejs编写api接口并部署到服务器上-前沿资讯
防伪底纹制作教程(防伪底纹制作)
Mysteel:家电原材料周报(4.17-4.21) 世界焦点
全球观焦点:比亚迪驱逐舰07动力信息曝光:加速7.9秒、亏电百公里油耗3.9升
每日报道:五一民宿现涨价毁约潮 房东各种奇葩借口:专家称构成欺诈可退一赔三
【新要闻】淄博烧烤小饼遭疯抢:老板因太忙暴瘦20斤
三摄镜头模组瞩目!大疆Mavic 3 Pro外观细节现身
世界聚焦:首次!中国绘制火星全球影像图发布:国内名镇上火星
成分股是什么意思在哪里能看到_成分股是什么意思-焦点精选
今日热文:年薪70万的全栈需要什么技能?
今日热门!证监会承接企业债发行审核职责落地
播报:“在香港生仔要够胆”?香港为“生育率全球最低”想招
小米空调突破性技术创新:获评国际领先
降价800元!华为Mate 50系列更新:鸿蒙更丝滑、4G信号比苹果13更快了
核污水马上排海!还敢吃海鲜吗 日本在售海豚肉测出汞含量超标近百倍 当前最新
鱼干的做法家常做法大的鱼干_鱼干的做法
企业债发审职责划转无缝衔接 证监会核发首批注册批文
每日信息:【国际大宗商品早报】农产品及金属期价全线下跌 国际油价震荡收涨
【读财报】3月上市猪企业绩向好:牧原、温氏销量领先 唐人神收入同比翻倍
广西壮族自治区宾阳县发布暴雨红色预警
老鼠半夜按门铃输密码吓坏房主 网友直呼不可思议:老鼠成精了|当前速看
环球报道:你在城市待遇如何?一季度全国居民收入榜出炉:12个省份跻身“万元户”
赢麻!美公司高管狂赞坐中国高铁比坐飞机还好:马斯克力挺-当前滚动
iPadOS 17支持设备清单曝光:多款经典机型被抛弃
bill to 环球新视野
学系统集成项目管理工程师(中项)系列11a_沟通管理(上)|每日关注
CSA动态 | 这个航天日,青年如何相聚?2023年中国宇航学会“青聚巢湖”青年科学家论坛即将开讲!
显示器屏幕为何越来越扁?原因找到了
暇日过在伯因而留饭_对于暇日过在伯因而留饭简单介绍 世界微速讯
全球观天下!cobalt strike渗透框架
【视频版】基于飞腾芯片的设计与调试入门指导-环球快资讯
软件工程基础作业——原型设计
【天天播资讯】Koordinator 一周年,新版本 v1.2.0 支持节点资源预留,兼容社区重调度策略
RTX 4090买一送一?满满都是套路啊
知名游戏网站VGtime最后3名编辑被开除:与资方冲突 不同意脚本取代原创 世界观天下
咸肉菜饭的做法_方法你学会了吗
环球新动态:法治微评:全力整治饭圈文化,严禁劣迹艺人随意变相复出捞金
爱书之人写给书的情歌-要闻
中复电讯官网 世界热文
欧莱雅毛孔紧致精华素
头孢三代抗生素有哪些作用_头孢三代抗生素有哪些
资讯:WTA明年有望出新规:TOP30球员不准参加250赛?让强者更强
全球今日报丨绿色“领跑”助力制造业高质量发展交流会佛山举行
方法
【环球聚看点】线性SVM决策过程的可视化
凤凰公园在哪里_凤凰公园占地面积|每日快报
女主变成拉拉 索尼大作《西之绝境》DLC评分再跌 差评持续上涨-全球聚焦
订不到酒店咋办?淄博一影院看末场电影可免费夜宿至早晨7点
人工智能会如何影响东南亚的产业发展︱南洋飞语 环球关注
世界焦点!kafka设计理念解析