首页 > 资讯 > > 内容页

数据湖 Iceberg 在小米的应用 全球头条

2023-06-28 21:12:22 清一色财经

本次分享内容是数据湖 Iceberg 在小米的应用场景。Iceberg 是具有 SQL 行为的表的开放式标准,此定义由 Ryan Blue 提出。


(相关资料图)

一、Iceberg 核心特性

Iceberg 是具有 SQL 行为的表的开放式标准,此定义由 Ryan Blue 提出。这个定义中包含了两点:

第一点,Iceberg 有 SQL 行为,意味着 Iceberg 是针对于结构化数据的,具有结构化数据的特性,如 Schema 等。

第二点,Iceberg 是一个开放性的标准,开放性标准体现在两方面。第一方面体现在设计上,Iceberg 支持多种文件格式,在存储介质上可以选择各种分布式存储或者云存储(如公有云),在上层应用上支持了 Flink、Spark、Hive 和 Trino 等多种查询引擎。第二方面则体现在社区上,目前已经有多家公司参与设计和建设。

接下来介绍 Iceberg 的几个特点。

1、Iceberg 可以避免意外发生

Iceberg 表可以放心使用,无需考虑太多不愉快的事情发生。

(1)Iceberg 提供了事务性

对表的任何操作都是原子性操作,同时使用多快照提供了读写分离的特性。

(2)Iceberg 提供了 Full Schema Evolution

可以对 Iceberg 表进行 Schema 修改,比如字段类型提升、增加列、删除列、重命名列、调整列顺序等。这里需要说明的是,字段类型不是可以随意更改的,Iceberg 只支持字段类型提升。例如,int 改成 long,float 改成 double,或者精度增大等。

2、Iceberg 支持隐式分区

Iceberg 有多种分区函数供选择,如下图所示。当我们需要根据某个 timestamp 类型的字段提取出的年、月、日或者小时进行分区时,可以直接使用 Iceberg 提供的分区函数。Iceberg 还支持多级分区,在分区选择上具有更高的灵活性。

与 Hive 进行对比,隐式分区体现在:

(1)Iceberg 写入时,不需要像 Hive 一样指定分区,写入哪个分区是由 Iceberg 自动管理的。这样的好处在于,可以保证数据分区是正确的,防止用户错误导致数据分区错误。

(2)用户查询时,不需要考虑分区的物理结构。假如一张表使用 date 字段做了分区,用户查询时不需要考虑这个字段是进行了月的分区,还是天的分区,只需要按照这个字段进行查询即可,Iceberg 会自动生成查询计划,如下图所示。

(3)在目录结构上,Iceberg 具有元数据层,通过记录分区和文件地址之间的关系,实现了物理结构和逻辑结构的分离。这样,可以非常方便地进行 partition evolution 操作。

3、Iceberg 的行级更新的能力

Fomat version 2 中提供了行级更新的能力,在 Iceberg 中使用了两类文件进行标记删除。第一类是 position delete file,这类文件可以指定文件和行号进行删除。第二类是 equality delete file,这类文件记录了被删除记录的唯一键进行删除。Iceberg 只是规定了可以使用这两类文件进行删除,但具体由哪一类文件或两类文件共同使用以达到删除目的,是由引擎层来决定的。下图中是 Flink 引擎实现行级删除的模式,对当前事务写入的文件使用 position delete file,而对于之前的事务写入的文件会使用 equality delete file 进行删除。查询时,使用 Merge On Read 模式,可以得到已经删除成功的结果。

二、Iceberg 在小米的应用场景

本节介绍 Iceberg 数据湖在小米的几个应用。

1、日志入湖场景

小米原有的日志入湖的数据链路如下图所示,用户会在 Client 端使用 MQ 的 SDK,将数据发送到 MQ 中。小米使用 Talos 作为 MQ,对标于业界的 Kafka,MQ 中没有 Schema。之后使用 Spark streaming 将文件直接 flush 到 HDFS 上,然后使用 add partition 挂载到 Hive 上。

这个链路的特点是:

(1)使用了旧版本的 Spark streaming,实现的是 at least once 语义,数据可能会出现重复。

(2)由于 MQ 当中没有 Schema,只能使用上报的时间进行分区。这样,会在凌晨的时候出现分区漂移的问题。

(3)直接 flush 文件到 Hive 上时,Hive 的 schema 与文件 schema 可能不匹配,导致历史数据读取时可能会出现问题。

针对以上问题,我们使用 Iceberg 对日志入湖的流程重新进行了设计,修改后的数据链路如下图所示。在 MQ 上配置 Schema,使用 Flink SQL 进行解析,然后写入到 Iceberg 中。

这个数据链路有以下几个特性:

(1)使用 Flink SQL 的 exactly once,保证数据的不丢不重。

(2)使用了 Iceberg 的隐式分区特性,保证数据分区的正确性,避免了分区漂移问题。

(3)Schema On Write 以及 schema evolution 特性,保证数据在 schema 演变过程中也永远是正确的。

链路在实际落地中,可能会出现数据丢失的问题。数据丢失的根本原因是链路上的数据不规范。Talos 使用的 Schema On Read 模式,用户将 Schema 附加到 MQ 上,在 MQ 到 Iceberg 的过程中,有一个 Schema 同步的过程。但由于 MQ 中的 Schema 人为配置可能延迟,会导致 MQ 的 SDK 发送的数据与 MQ 中 Schema 不一致,使得 FlinkSQL 解析的时候可能会丢掉一些列。最终用户角度看到的就是数据丢失。想要解决这个问题,要在流程中进行规范,首先定义 Schema,然后发送数据。

2、Flink+ Iceberg 构建的近实时数仓

小米有很多的 IOT 设备,在这些设备上打点有两个痛点问题:

(1)设备打点数据延迟上报问题非常严重。假设一台设备的一批数据没有上报,然后关机,过了一个月数据才上报,那么数据开发工程师需要将过去一个月的数据进行重新计算和存储。由于 Hive 不支持事务性,那么在进行重新计算然后覆盖过去一个月的数据的过程中,可能会导致下游读取的异常。

(2)由于 Spark 离线任务通常都是 T+1 的,所以凌晨时会启动很多的 Spark 作业做指标拆分,将 ODS 的数据拆分到 DWD 层,这会导致集群的资源紧张,数据产出的延迟风险非常大。

针对这些问题,我们使用了 Flink+Iceberg 对链路进行重构,重构后的数据链路如下图。

这个链路具有以下特点:

(1)首先在入湖侧,Iceberg 的隐式分区可以保证打点延迟的数据能够正确分区,以刚才的例子,一个月之前的数据不需要覆盖写入,只需要将下游的数据进行回溯即可。

(2)结合 Iceberg 的灵活分区,使用 date+event_name 进行了二级分区。这样,下游进行指标拆分时,只需要指定二级分区就可以进行消费,这样可以大大减少数据的扫描量,进而节省计算资源。

(3)整个链路中使用 Flink 来替换 Spark,这对用户来说非常重要,因为它意味着凌晨的计算量可以平摊到全天,这样产出延迟的风险可以大大降低。分摊到全天并不意味着风险变高了,相反,Flink 的 checkpoint 只有十几分钟到半个小时。这样,即使作业失败,恢复的代价也会比较小。

3、离线场景下遇到的一些问题

Iceberg 的离线场景是比较完善的。但是,若需要数据链路稳定,仍然需要一些努力。

(1)分区完备性校验

分区完备性校验,即如何感知到上游的 T-1 数据已经写入完成,从而开启下游作业。这里分成两个场景。

①离线形式的表,之前 Hive 表的校验逻辑是校验 success 文件。但是 Iceberg 写入并没有 success 文件。同时 Iceberg 表的分区散落在各元数据文件当中,而 list partition 操作非常耗时。针对这一问题,我们使用了任务依赖,不是使用数据依赖来依赖分区的检测,而是依赖于上游的任务。当上游任务写入完成之后,下游任务就可以进行调度。

② 实时写入的表,Iceberg 表分区在写入第一条数据时就已经生成,这样也无法校验分区。并且,在实时场景下,经常会有数据延迟到达的问题。针对这个问题,我们参考了 Flink 的 watermark 机制,使用了 Iceberg 的 watermark,根据用户提供的时间列来生成一个时间戳,如下图所示,我们会在快照里增加一个时间戳,有一个单独的检查作业来对比分区和 watermark,当 watermark 超过分区时,即意味着分区写入完成,业界也称这种方式为流转批。

(2)离线场景的优化

① 试图将 z-order 应用于 ETL,在实践中,z-order 在整个分区中执行的代价很高。而且,对于 ETL 底层的一些表(如 ODS,DWD),查询的次数比较少,z-order 带来的收益不大。因此,建议用户使用 local sort 进行排序写入的方式。

② 我们在内部实现了 parquet 的 page column index,相比 parquet 之前的谓词下推的方式时 row group 级别的,一个 row group 是 128M 或 256M,而 parquet 最小的可读单位其实是一个 page,大概是 2MB 左右,page column index 会对 page 建立一个 min-max 索引,查询时可以利用查询谓词和 page 的 min-max 索引来对数据进行有效过滤,最终读入更少量的 page 进行计算,如下图所示。

在小米内部 benchmark 场景中,效果还是不错的。最好的情况下,可以过滤 80% 的数据。但若查询的是非排序列,比如下图的 Q7 到 Q9,基本上没有什么改善效果。

(3)隐式分区在离线场景的问题

当我们将 Iceberg 引入到离线场景之后,由 Iceberg 自带的隐式分区和 dynamic overwrite 带来的结果与用户期望有所不同。例如,假设表结构中含有四个字段(如下图所示),我们使用 date 按天分区之后再使用 hour 按小时分区。

当我们使用语句 insert overwrite catalog.db.table_test values(1,‘a’,20230101,1),(2,‘b’,20230101,2) 进行覆盖写入后,会发现查询结果只覆盖了date=20230101/hour=1和date=20230101/hour=2分区,没有覆盖date=20230101/hour=3 的分区。这意味着 dynamic overwrite 对隐式分区操作时,不会覆盖所有的二级分区。此时,用户希望回归到 Hive 的使用方式,解决方法是使用 static overwrite 来指定分区进行覆盖。将覆盖语句修改为:

set Spark.sql.sources.partitinotallow=static。insert overwrite catalog.db.table_test partition(date=20230101) values(1,‘c’, 1), (2,‘d’,2);

(4)Spark timestamp 带来的问题

Iceberg 类型和多引擎类型的对齐上存在一些问题。如 Iceberg 当中的 timestamp 类型有两类,第一种是带有时区的 timestamptz,第二种是无时区的 timestamp。

而 Spark 的 timestamp 类型只有一类,即有时区的 timestamp 类型。这样就带来一个问题,如何使用 Spark DDL 来创建出 Iceberg 的无时区的 timestamp 类型呢?这时需要配置一个参数:

set‘Spark.sql.Iceberg.use-timestamp-without-timezone-in-new-tables’=true

当使用Spark来读取Iceberg timestamp类型时,则需要配置另一个参数:

Set ‘Spark.sql.Iceberg.handle-timestmap-withour-timezone’=true

这时 Spark 会把无时区的当成有时区的进行处理,也就是说当时间戳是 UTC 的 0 点,那么 Spark 读出来的就已经加了 8 个小时了(这里假设系统时区为 UTC+8)。这样用起来似乎也没什么问题,但是与 Trino 比较起来就有问题了。当我们在平台上同时提供了 Spark 和 Trino 两种 adhoc 的查询方式,会发现结果是不同的。这个问题在 Spark 3.4 之后应该会有所改善,因为设计中会引入一个新的无时区的时间戳类型。

4、实时集成入湖

我们将 MySQL、TiDB、Oracle 等关系型数据库的 binlog 日志采集到 MQ 当中,再使用 Flink 写入到 Iceberg 的 format v2 上,如下图所示。

这种数据链路的特点包括:

(1)整个链路借助于 Flink 的 Exactly Once 和 Iceberg 的事务性,可以到达一个端到端的 exactly once 的语义。

(2)Iceberg 对实时支持可以达到分钟级别。

(3)Iceberg 自身的 merge on read 设计,需要后台定时执行 compaction 任务。Iceberg 的 compaction 是一种插件式设计,到目前还未实现在 Flink 当中。目前,当需要使用 Flink 进行类似于 HBase 的限流或写停等操作时,尚需自己开发。假如 Compaction 任务异常终止,写链路是感知不到的。会造成写入时没有问题,但是查询时速度很慢的现象。

此外,我们在 v2 中发现更多 Iceberg 存在的问题:

(1)唯一键问题:Iceberg 本身并没有明确说明在表中可以配置一个主键,而是将这个权利交给引擎层去处理。这张表是否可以保证唯一主键,完全取决于引擎及使用方式。即使使用了支持声明主键的引擎,也很难保证声明的主键的唯一性。除非默认开启 Upsert 方式,但这种方式代价比较高。

(2)Upsert 问题:Iceberg 的文件组织实现方式的 Upsert 的代价比较高。因为 Iceberg 在设计时,希望数据尽可能入湖且没有索引,所以不会去校验这条数据是否已经存在了。Upsert 的实现方式为 delete+insert 方式,即写入两条记录,一条删除一条新增。当数据量比较大时,会导致 equality delete file 文件过多。解决方法有两种,一是增加 compaction 频次,二是通过 bloom filter 来过滤掉一些无用的 delete。

(3)并发冲突问题:实时写入时,compaction 和写入会出现并发冲突,这往往是由于 compaction 过程中,有一条 position delete 数据写入了。这种方式下,Flink 是比较友好的,因为 position delete 只会指向一个新增的文件,不会对历史的文件进行引用。因此在校验时,可以对 position delete file 在快照中打标记,从而忽略由 position delete 带来的冲突进而导致 compaction 失败问题。

(4)完整 CDC 问题:Iceberg 与 Hudi 或 Paimon 不同,没有专门的 changelog 供 Flink 直接消费。我们需要从文件组织中将 changelog 自行解析出来,这样的解析代价很高,并且可能出现由于 Upsert 操作而带来的 changelog 不准确。小米内部实现了单事务中解析出删除的数据和插入的数据,然后以顺序的方式提供给下游消费。但是若单个快照中,先删后写的操作过多时,会导致下游波动。Changelog 不准确(尤其在非主键聚合的场景下),是通过配置 changelog CDC 去重来解决的,依赖于 Flink 内部的state 撤回的机制来解决,配置语句为:set table.exec.source.cdc-event-duplicate=true。

5、列级数据加密

Iceberg 由于元数据层的设计,可以在 Iceberg 表上实现数据加密。列级数据加密主要是利用了 parquet 1.12.2 高版本的加密能力。之前,小米内部的数据加密是依赖于隐私集群,单独的 IDC 机房的隔离会造成运维成本高,以及数据孤岛的问题。因此我们参照社区在 Iceberg 上实现了一个数据加密,这个方案称为单层数据加密。

与直接数据加密方式不同,直接数据加密的每条数据的写入都会调用一次 KeyCenter 进行加密,然后写入。单层数据加密会在 Iceberg 表中保存加密之后的一个密钥,当写入程序写入时,会调用一次 KeyCenter,对加密的密钥进行一次解密以获取明文密钥 DEK,然后对数据进行加密写入。读取过程与写入过程类似,读取时会对 Iceberg 元数据中保存的加密密钥进行解密,进而对数据进行解密处理。这里会涉及两个密钥,一个是 Iceberg 表自身保存的 DEK,另一个是对这个 DEK 加密的 KeyCenter 中的密钥。单层包裹的加密方案的优点是:

(1)parquet 列级数据加密,不需要对所有的列进行加密,用户可以选择需要加密的列。

(2)对 KeyCenter 压力较小,写入和读取时只需要对 KeyCenter 访问有限次数。

这个方案在小米内部实现的是简化版本,我们会对一个 Iceberg 表维护一个 DEK 密钥。而社区的方案中,密钥粒度比较细,可以是分区粒度的密钥,也可以是文件级别的密钥。

6、Hive 升级 Iceberg 的调研

(1)方案 1:使用 migrate 原地升级

可以使用社区提供的 migrate 原地升级的方案进行升级。社区提供了 Spark 的 procedure 语法,使用 CALL migrate 语法可以直接将 Hive 表升级为 Iceberg 表。下面的例子中,将 Spark_catalog.db.sample 表升级成了 Iceberg 表,同时将新增属性 foo 为 bar。

CALL catalog_name.db.sample(‘Spark_catalog.db.sample’, map(‘foo’, ‘bar’))

但这种方式在实际落地中存在一些问题:

① Iceberg 支持的文件只有 parquet/orc/avro 这三种格式,不支持 text、sequenceFile 等文件格式。导致一些 Hive 表无法支持升级为 Iceberg 表。

② 表下游消费离线作业的 Spark 必须是 2.4 以上的版本。而小米内部存在一些低版本的 HiveSQL 和低版本的 Spark 作业,因此这部分表是无法使用这个方案进行升级的。

(2)方案 2:复用 Hive location

出于减少下游作业的改动的目的,我们希望能够复用 Hive 的 location。写入的时候写入到 Iceberg 表,让 Iceberg 表和 Hive 表的存储地址相同。这样我们只需要升级上游作业,下游表在 catalog 层仍然存在,这样下游作业不需要改动,如下图所示。

这个想法是比较好的,但是实现过程有些取巧,因为 Iceberg 是多快照的,因此一个分区下,可能会有多个副本,而 Hive 是通过 list 目录来读取数据的。这样,Hive 在读取时,可能会读取到重复数据。若想要让 Hive 读取单快照,那只能及时清理 Iceberg 快照和残留文件。但是这样又使得 Iceberg 失去了事务性,而且受限于 Hive 下游消费作业,Iceberg 的一些特性(如 schema evolution)也都受到了限制。若是 Hive 的 parquet 版本和 Iceberg 的 parquet 版本不一致,那么改动会非常大。最终这个方案被放弃。

(3)方案 3:创建新表

这是业界使用最多的方案,这个方案的思路是:创建一张相同的 Iceberg 表,将 Hive 的历史数据回溯到 Iceberg 当中,然后升级上游作业,随后测试验证和升级 Hive 的所有下游作业,让其消费 Iceberg。

为什么这个方案比较麻烦,但是用户愿意迁移呢?主要有两个原因:

① 我们在 Iceberg 上使用了 ZSTD 的压缩算法,得益于 ZSTD 更高的压缩率,使得存储成本可以降低 30%。

② 在回溯历史数据的时候,我们对大字符串进行了排序,这样可以提高数据的相似度,进一步提升压缩率。对一张表来说,存量数据在存储中占有更大的比例。若是能够对历史数据的存储空间减少 30%,用户还是可以接受改造的。

7、Iceberg 在小米的应用现状

目前有 1 万 4 千多张表,日新增已经超过了 Hive,总的数据量已经达到 30PB。

三、未来规划

首先,我们将跟进物化视图的功能。在 OLAP 场景且没有谓词下推的情况下,我们期望通过预计算的方式来提高 Iceberg 的查询能力。

其次,我们将跟进 Iceberg 在 Spark3.3 上的 changelog view。这个功能使得 Spark 可以获取到 Iceberg 的 changelog,我们希望在离线场景下也可以进行增量读取和更新。

最后,小米会在海外集群上探索数据上云。小米内部都是 EBS 挂载,EBS 本身比较贵,而 HDFS 本身有 3 个副本,相比直接使用公有云成本较高。

四、问答环节

Q1:为什么要 Spark streaming 切换为 Flink SQL,主要出于什么考虑?

A1:主要是内部架构考虑。第一是,Spark Streaming 的 2.3 版本的 At least once 语义会导致数据重复。第二是,引入 Flink 之后,开始积极向 Flink 方向靠拢,不再去维护 Spark streaming 的方向,在替换为 Flink SQL 之后,对整个数据链路进行了迭代。

Q2:watermark 是 Iceberg 已经存在的,还是业务自己加的?

A2:这个需要业务自己配置使用什么字段来作为 watermark 的生成字段,需要用户自己配置。然后 Flink 在写入时,会在快照中生成 watermark。

Q3:小米在强实时场景中用到了 Hudi 吗?

A3:没有,小米在强实时场景走的 MQ 那套数据链路。

Q4:选型上为什么是 Iceberg 而不是 Hudi?

A4:最初为使得 kappa 架构和 lambda 架构得到统一而调研了数据湖的组件,选择 Iceberg 的主要原因是 Iceberg 的开放性和多引擎支持。2021 年 4 月份,Iceberg 最先支持了 Flink。而当时,Hudi 和 Spark 还未解耦。我们出于使用 Flink 的角度而选择了 Iceberg。实践中,Iceberg 在实时数据的处理中,尤其在 CDC 处理方面,可能没有 Hudi 那么易用。我们也对 Iceberg 进行了二次开发,才把数据链路运行得稳定一些。

Q5:历史的离线作业仓库,数仓作业为 Hive 作业,如果切换到实时链路 Iceberg,如何做到无感知切换?比如说,SparkSQL 语法与 FlinkSQL 语法不同,以及 UDF 实现不同。

A5:目前没有办法做到无感知切换,SparkSQL 和 FlinkSQL 语义上就不大一样。若是切换到 Flink batch 还有可能,但若是想要离线切到实时,基本上要把整个逻辑的实现一遍。

Q6:目前实时数仓当中,append 模式和 Upsert 模式的数据延时可以做到几分钟?尽可能避免数据延迟到达。

A6:这两种模式,目前最低都是 1 分钟。我们约束了用户配置的 checkpoint 时长,最低不能低于 1 分钟。

Q7:如何使用 local sort 进行多列查询?

A7:这个可以写入时在算法上使用 z-order 排序替换默认的排序算法来实现。

Q8:切换 Iceberg 带来的切换成本是怎样的,业务需求是否很强烈?

A8:Iceberg 带来的事务性、隐式分区、多引擎支持的特性可以切实解决用户的问题。即使切换过程中有很大的成本,当数据湖方案确实可以解决用户的痛点时,用户也会想用这个新架构去替换。

x
广告
最近更新

数据湖 Iceberg 在小米的应用 全球头条

2023-06-28

恐怖片为何如此恐怖?|最新消息

2023-06-28

中小企业数字化转型实践:政企平台三方合力建生态,集群化已成大趋势 新资讯

2023-06-28

首开股份90亿元公司债券(第二次)更新至“已反馈”

2023-06-28

*ST中天:公司股票被终止上市

2023-06-28

观热点:菜鸟速递引发市场关注,内部人士进一步详解品质快递

2023-06-28

滚动:“互联网+”助力增城仙进奉出村进城提速

2023-06-28

新型减肥药:减重效果好、价格低、作用持久_快讯

2023-06-28

飞龙股份:目前公司没有参与期货套保业务

2023-06-28

每日快报!Brilliant Labs开启具身智能新篇章,获300万美元种子轮融资

2023-06-28

孙颖莎上来就表现很强势让伊藤美诚只有招架之功毫无还手之力

2023-06-28

全球看热讯:天津暴雨预警升级!最大降雨量超100mm!这些积水点位要注意!

2023-06-28

西安为一名基层干部澄清正名!

2023-06-28

截止6月28日PTA相关行业开工率汇总-天天看热讯

2023-06-28

等不及了!急救出诊医生跳下水救人:“没想到今年第一次游泳是救人” 观热点

2023-06-28

国基路街道办事处开展中医义诊进社区活动 天天最资讯

2023-06-28

天天百事通!阳泉市代表队在省卫生健康技能竞赛中荣膺全省第二

2023-06-28

我国国家级旅游度假区数量已达63家,休闲旅游有哪些新趋势? 环球头条

2023-06-28

内蒙古阿巴嘎旗发现大型古墓葬群及石人像|世界聚焦

2023-06-28

【速看料】大连万达商管千万股权被冻结

2023-06-28

洛阳市城乡一体化示范区农业农村局关于申请公开2023年实际种粮农民一次性补贴资金发放明细的报告

2023-06-28

创业板新股美硕科技上市首日高开 现涨超26%

2023-06-28

新型电力系统建设提速,如何应对新能源占比提升带来的挑战? 焦点热议

2023-06-28

财经视点|小杂粮做出大产业

2023-06-28

焦点日报:融资丨诺米代谢完成近亿元A+轮融资,元禾控股领投,助力代谢组学前沿技术研究和创新临床应用开发,凯乘资本担任独家财务顾问

2023-06-28

【全球时快讯】打马虎眼打一生肖 打马虎眼十二生肖比喻的谁

2023-06-28

男士日常必备的50件单品 精英男士必备精品 环球速递

2023-06-28

2023年十大新兴技术出炉 生成式人工智能在列|环球热议

2023-06-28

宜丽客OG-ABLC06BR(关于宜丽客OG-ABLC06BR介绍) 世界消息

2023-06-28

萧敬腾求婚成功50岁女老板!曾陷“小三风波”,情史被扒引争议!

2023-06-28

笔记本电脑无线网怎么连接_笔记本打开无线网络 世界热点

2023-06-28

金铲铲之战:版本更新前瞻,英雄之力、强化符文大量改动,百花齐放的版本 ! 天天关注

2023-06-27

【世界聚看点】卓创资讯:聚丙烯价格向上阻力仍存

2023-06-27

每日短讯:首日大涨近 150%!哈勃投的光电模块公司华丰科技登陆科创板 市值 106 亿元

2023-06-27

一级建造师有啥专业_一级建造师都有什么专业

2023-06-27

医师注册申请表的完整表格_医师注册申请表

2023-06-27

【全球报资讯】印度将成为亚太地区增长最快的经济体之一

2023-06-27

助力远距离纯氢运输 我国首次高压力多管材纯氢试验取得成功-环球热门

2023-06-27

博创科技:东方通信拟减持公司不超1%股份 焦点速读

2023-06-27

融资7.4亿美元,全系降价:蔚来销量难题仍待解|今日报

2023-06-27

世界动态:A股强势反攻 市场发出重要见底信号!

2023-06-27

涂山红红和东方月初甜文_涂山红红东方月初图片-独家

2023-06-27

杭州女子养仓鼠脸烂成火龙果_发热到40度四天都不退|世界速讯

2023-06-27

教育部印发通知部署做好2023年暑期校外培训治理工作 世界要闻

2023-06-27

截至5月底全国发电装机容量约26.7亿千瓦 每日关注

2023-06-27

富豪人生txt免费全集下载_富豪人生 世界热推荐

2023-06-27

【焦点热闻】泊松分布公式的k是什么意思(泊松分布公式)

2023-06-27

市体育局直属事业单位2023年面向本市专项招聘优秀运动员60人

2023-06-27

【速看料】四川一学院附近现分尸案?警方回应:确有刑案,但情节不属实

2023-06-27

1312人!安徽公安职业学院2023年分专业招生计划公布

2023-06-27

要求省属企业做好防汛安全管理工作_世界播报

2023-06-27

宁围街道|红色服务暖人心 垃圾分类我践行

2023-06-27

全球速看:今天,大孙各庄镇开展燃气安全督导检查工作!

2023-06-27

樱桃小嘴是什么意思_樱桃小嘴是什么的意思 环球快播报

2023-06-27

这一击160公里/时!9.5万元索尼镜头被棒球击中报废 摄影师逃过一劫

2023-06-27

富有内涵的网名 有有内涵的网名

2023-06-27

不知不觉中,他触“电”了

2023-06-27

汉川玖和正驾校(和正驾校)

2023-06-27

嘉兴:二孩及以上家庭购自住住房,公积金贷款最高限额可上浮20%-世界微资讯

2023-06-27

缩量下跌意味着什么(缩量下跌) 世界时快讯

2023-06-27

牢牢抓住建设教育强国的核心课题——教育的根本问题 焦点短讯

2023-06-27

西山区牢固树立政务服务新风

2023-06-27

带息负债比率是什么意思_带息负债比率_世界新资讯

2023-06-27

世界即时看!口区念什么字_口区什么意思

2023-06-27

怪兽类电影排行榜_怪兽类电影|环球视点

2023-06-27

c1教练员证怎么考_c1教练资格证怎么考

2023-06-26

交谊舞14步带口令教程_交谊舞14步教程

2023-06-26

高考志愿填报如何避坑?这场报告备受考生家长热捧_每日看点

2023-06-26

中国贸促会副会长张少刚会见联合国采购司司长贝叶斯|环球微速讯

2023-06-26

和彩云有什么用途_和彩云好吗|每日播报

2023-06-26

奥特佳:公司实际对外担保金额共计约19.39亿元

2023-06-26

利率2.34% 个人也可认购!北京发行20亿元地方债助推“棚改”-每日消息

2023-06-26

2023开封考生填报志愿注意事项有哪些

2023-06-26

白切鸡的做法?

2023-06-26

【环球速看料】航空用锂电池市场前景广阔

2023-06-26

这份“高考”喜悦古今相通!|焦点快报

2023-06-26

网络涉毒犯罪如何打击?青少年涉毒如何防范?最高法刑五庭相关负责人答记者问

2023-06-26

世界聚焦:称霸2023环塔赛场 瑞虎8 PLUS如何练就冠军本领?

2023-06-26

世界新消息丨[浦东]福山外国语小学:开阔育人为成长 汇聚卓越促发展——2023学年第一学期工作会议

2023-06-26

金铲铲之战s9虚空阵容怎么搭配 s9虚空阵容搭配最强出装攻略推荐 今日播报

2023-06-26

vlookup跨表两个表格匹配_vlookup函数怎么使用 全球微资讯

2023-06-26

少餐可预防2型糖尿病与肥胖|快播

2023-06-26

工程质量保证金退还需要遵循哪些法律程序

2023-06-26

拖欠学生工资打110有用吗_当前焦点

2023-06-26

铁路端午小长假运输发送旅客7037.9万人次 较2019年同期增长11.3%

2023-06-26

天天快看:海峡股份(002320)6月21日主力资金净卖出6601.69万元

2023-06-26

售价23.60-49.80万元 新款奔驰A级上市

2023-06-25

山东淄博已建成近300家新型公共阅读空间

2023-06-25

库迪咖啡在哈尔滨成立新公司,注册资本100万

2023-06-25

广州市政务新媒体影响力榜单(2023年5月榜)发布-当前看点

2023-06-25

长沙舰简介_长沙舰 每日热议

2023-06-25

2023年北京高考成绩分布统计表公布

2023-06-25

凉凉歌词完整版歌词_凉凉歌词完整版打印-聚看点

2023-06-25

戴尔e6500如何恢复出厂设置_戴尔e6500

2023-06-25

全球热资讯!感恩的歌原唱完整版(感恩的歌)

2023-06-25

环球短讯!使用具有柔性端接的多层陶瓷电容器确保安全、可靠的电动汽车充电

2023-06-25

观焦点:全球移民护照哪家强?可参与华侨联考、这小众国性价比飞升

2023-06-25

今日播报!西安感染者增加丨已进入高发期,陕西疾控重要提醒

2023-06-25

氢燃油电池降本50%,固态电池续航1500公里?丰田急了

2023-06-25

服务大厅小哥自制“接单提醒器”,助力居民高效办事! 每日信息

2023-06-25

甘肃省大运会来了 7月点燃青春梦想_世界百事通

2023-06-25

动态:“抗癌天花板”!研究表明,这样做能使患癌风险降低73%!

2023-06-25

非主流唯美图片 非主流唯美图片大全 手机壁纸)-天天速讯

2023-06-25

天天微头条丨三茅街道举办“粽情端午·全民扫楼享文明”活动

2023-06-25

cad2010下载教程_cad2010下载-焦点热讯

2023-06-25

环球快报:iphone如何调整照片像素大小_如何调整照片像素大小

2023-06-25

深圳龙岗View | 下一站,尚景&盛平!

2023-06-24

“食在广州”如何赋能国际消费中心城市建设?广东烹饪协会开展调研聚焦创新与高质量 天天热消息

2023-06-24

瓦格纳“叛乱”背后:普京的“大厨”挑战普京?

2023-06-24

高淳古柏开展端午系列活动,传承传统文化

2023-06-24

刘备称帝是哪一集(刘备称帝)_今日最新

2023-06-24

柯文哲谈“换侯”传闻:还敢再换吗? 环球观热点

2023-06-24

品冠天天向上(关于品冠天天向上的基本详情介绍)

2023-06-24

醋酸商品报价动态(2023-06-24)

2023-06-24

环球热文:2023年6月24日氯化锌价格最新行情预测

2023-06-24

【北京成交日报】06月23日新房成交132套、二手房66套;涨价房源102套_每日消息

2023-06-24

今日播报!持续更新丨俄相关部门正全天候向普京通报针对瓦格纳武装力量所采取的措施

2023-06-24

《雪晴》元代 王冕起来敲石火,正是雪晴时 竹叶冰垂地,梅花玉|天天即时

2023-06-24

全球微头条丨安逸花逾期几天爆通讯录?如何投诉暴力催收?

2023-06-24

电池型号18650和21700(电池型号) 环球热文

2023-06-24

angelababy的尿道口有多大 请问Angelababy的孩子大名叫什么

2023-06-24

生态修复 点绿成金 “南方呼伦贝尔”邀您相见

2023-06-24

星座学说:各星座女性的出轨率排行榜

2023-06-24

万能显卡驱动_万能显卡 简讯

2023-06-24

世界微资讯!四十岁的女人选什么发型才合适?试试这几款中长发,时髦又显年轻

2023-06-24

地图鱼好养吗_地图鱼一般养几条好 环球关注

2023-06-23

宜丰县林业局_关于宜丰县林业局介绍

2023-06-23

热问|房屋质量不合格,可以拒绝收房吗?

2023-06-23

山西省烟花爆竹禁放_山西10月1日起禁放烟花爆竹_每日速递

2023-06-23

25000份!贵阳市2023年6月九价HPV疫苗摇号来啦!

2023-06-23

华丽的外出韩剧完整版在线中字 在哪看华丽的外出完整版免费

2023-06-23

8级雷暴大风!大暴雨!江西的雨何时结束?速看|环球实时

2023-06-23

泰晤士: 曼联将为芒特开出5500万镑最终报价,若被拒愿退出谈判 焦点关注

2023-06-23

组图|逾3万人端午游乐山大佛 半数是90后00后 世界观天下

2023-06-23

潮汕牛肉丸怎么做才好吃,介绍几个简单快速的?-动态

2023-06-23

广东省抽检粽子,1批次不合格 世界速读

2023-06-23

李梦归队!即将第二次代表中国女篮出战亚洲杯 短讯

2023-06-23

焦点资讯:矗立千年,福建现存年代最早的大型石塔就在这!

2023-06-23

观点:玉兰树高,习主席的复信传递深厚情谊

2023-06-23

前五个月电信业务总量保持较快增长_重点聚焦

2023-06-23

火上央视!《新闻联播》特别关注佛山叠滘龙船漂移大赛_环球快看

2023-06-23

云南省建设实施一批新能源项目

2023-06-23

《偷偷藏不住》赵露思陈哲远满口哥哥,被吐槽油腻?更尬的还在后面!

2023-06-23

遮天:庞博开辟苦海,韩飞羽被打败,叶凡逆天改命 当前播报

2023-06-23

天天热推荐:王者荣耀信誉积分怎么回复_王者荣耀信誉积分怎么恢复

2023-06-23

自动挡行驶时能从“D档”挂到“S档”吗?要不要踩刹车?别弄错了!

2023-06-22

世界观点:【特稿】通胀压力不减 欧洲多国央行再现升息潮

2023-06-22

【世界聚看点】2023上海国际珠宝首饰展览会揭幕

2023-06-22

央企自主研制“太行110”重型燃汽轮机填补国内空白|天天精选

2023-06-22

端午小长假首日 动漫节现场人气爆棚 天天看点

2023-06-22

喜欢隐居诗句有哪些古诗 关于避世隐居的古诗词

2023-06-22

雪燕桃胶皂角米有什么功能 雪燕桃胶皂角米功效

2023-06-22

快报:山西艺术职院附中女生疑遭霸凌,警方:涉事学生到案

2023-06-22

父亲回应女儿在坟前跳舞被质疑炒作 基本信息讲解

2023-06-22

高校师生包粽子做香囊 多彩活动迎端午|焦点滚动

2023-06-22

最新消息:“3小时高铁圈”,“圈”出几多精彩?

2023-06-22

1、前汉堡前锋拉索加自由转会加入沙尔克二队,他将...|观点

2023-06-22

现代汽车将关闭在华两家工厂,产品将从13款减少至8款

2023-06-22

全球最资讯丨金融与经济是核心期刊吗(金融与经济)

2023-06-22

麻腮风疫苗出国要打吗,出国留学麻风腮

2023-06-22

宁夏银川一烧烤店发生燃气爆炸 现场搜救出38人

2023-06-22

全球石油需求结构加速调整

2023-06-22

全球播报:穿云箭出鞘,3-1世界第68迎来2连胜,同时力压莱万主队排名第2

2023-06-22

万念俱灰 踌躇满志 都是悲剧_踌躇满志和万念俱灰是什么意思 焦点精选

2023-06-22

世界观察:宜春江上寄仰山长老二首

2023-06-22

哈尔滨哪家羊蝎子好吃?

2023-06-22

软体海鲜做法简单好吃美食 软体海鲜名字大全|热消息

2023-06-21

Verizon的首款5G手机已经投放市场需要使用Mod才能正常工作 焦点速看

2023-06-21

焦点要闻:“接盘侠”认赔跑路 挖5米深坑掩埋会计凭证的*ST长方会否走向面值退市?

2023-06-21

端午节前义门镇为孤寡老人等送去节日问候

2023-06-21

萌力超出“粽”,和长隆“老广”大熊猫一起过端午

2023-06-21

全球关注:斗破苍穹实力排行榜前十名(斗破苍穹实力排行榜)

2023-06-21

热点聚焦:许昌经济技术开发区积极开展2023年无偿献血活动

2023-06-21

宁夏大规模核酸检测信息系统(税之风:未做核酸但查到报告宁夏回应)

2023-06-21

五大升级是亮点,全新荣威i5官图发布

2023-06-21

全球资讯:全国铁路7月1日起实行新的列车运行图

2023-06-21

贵州绿色生态优选农产品在上海展销推介

2023-06-21

2023数字藏品行业发展趋势及市场现状分析-看点

2023-06-21

中国公民在奥克兰遇袭 中驻奥总领馆向奥市政厅表达关切|世界热消息

2023-06-21

当前焦点!女佩恩_女佩恩连载_女佩恩

2023-06-21

观察:公安部:全国破获毒品犯罪案件从最高峰时的16万余起降至3.5万起!

2023-06-21

【全球新要闻】秦皇岛佰工钢铁装备升级改造项目竣工投产

2023-06-21

Epic 开放虚幻引擎 5.2 示例《Electric Dreams》环境 热闻

2023-06-21

6月20日中大力德(002896)龙虎榜数据:游资徐留胜、章盟主上榜

2023-06-21

不仅有电影!《对马岛之魂》导演透露或将开发剧集_世界新视野

2023-06-21

世界时讯:公积金可以直接用作购房首付吗?贷款额度是多少?

2023-06-21

天天简讯:泸州老坛酒招商加盟官网主站

2023-06-21

百事通!柏墅村:移风易俗 情暖端午

2023-06-21

“泰坦”观光潜艇氧气已不足40小时,搜救人员:就算找到了可能也无法营救|当前关注

2023-06-21

焦点信息:微光成炬,大树云集团为陕北留守女孩云端筑梦

2023-06-21

世界微动态丨2023无锡周新里端午活动汇总

2023-06-21

观察:浙江永强:6月20日融资买入889.32万元,融资融券余额2.22亿元

2023-06-21

华能水电(600025):6月20日北向资金减持217.87万股

2023-06-21

999手镯怎么辨别真假_999手机网-头条

2023-06-21

世界热头条丨焦点讯息:小节线是什么(关于小节线是什么)

2023-06-21

天天播报:延庆最新逮捕通告(延庆生活网)

2023-06-21

世界讯息:再社会化名词解释_再社会化

2023-06-20

山东潍坊:逐浪迎端午 世界微资讯

2023-06-20

天天速读:保利+京投发展联合体33.2亿元摘得北京朝阳区东坝B006地块,溢价率5.4%

2023-06-20

张鹤伦陪外甥女中考,惋惜自己是清华遗憾!张鹤帆:才差497分 世界播资讯

2023-06-20