首页 > 资讯 > > 正文

实时分布式低延迟OLAP数据库Apache Pinot探索实操-世界微资讯

来源:博客园 2023-04-15 06:28:46

@

目录概述定义特性何时使用部署Local安装快速启动手动设置集群Docker安装快速启动手动启动集群Docker Compose实操批导入数据流式导入数据概述定义

Apache Pinot 官网地址 https://pinot.apache.org/ 最新版本0.12.1


(资料图片仅供参考)

Apache Pinot 官网文档地址 https://docs.pinot.apache.org/

Apache Pinot 源码地址 https://github.com/apache/pinot

Apache Pinot是一个实时分布式OLAP数据存储,专为低延迟高吞吐量分析而构建,非常适合面向用户的分析的工作。Pinot 携手 Kafka 和 Presto 提供面向用户的分析。

Pinot可直接从流数据源(如Apache Kafka和Amazon Kinesis)中摄取数据,基于实时事件实现即时的查询。还可以从批处理数据源中摄取数据,如Hadoop HDFS、Amazon S3、Azure ADLS和谷歌云存储。核心采用列式存储,基于智能索引和预聚合技术实现低延迟;还提供内部仪表板、异常检测和临时数据探索。

特性

Pinot最初是在LinkedIn上构建的,用于支持丰富的交互式实时分析应用程序,如Who Viewed Profile, Company Analytics, Talent Insights等等。

面向列:面向列的存储技术,并提供各种压缩方案。可插索引:可插拔的索引技术,支持排序索引、位图索引、倒排索引。查询优化:能够基于查询和段元数据优化查询/执行计划。来自Kafka、Kinesis等流的近实时摄取,以及来自Hadoop、S3、Azure、GCS等源的批量摄取类似sql的语言,支持对数据的选择、聚合、过滤、分组、排序和不同的查询。支持多值字段水平可扩展和容错何时使用

Pinot旨在为大型数据集提供低延迟查询;为了实现这一性能,Pinot以列式格式存储数据,并添加额外的索引来执行快速过滤、聚合和分组。原始数据被分解成小的数据碎片,每个碎片被转换成一个称为段的单位。一个或多个段一起形成一个表,这是使用SQL/PQL查询Pinot的逻辑容器。Pinot非常适合查询具有许多维度和指标的时间序列数据。Pinot不是数据库的替代品,也即是它不能用作真值存储的来源,不能改变数据。虽然Pinot支持文本搜索,但它并不能取代搜索引擎。此外,默认情况下,Pinot查询不能跨多个表,但可以使用Trino-Pinot连接器或preto-pinot连接器来实现表连接和其他功能。主要使用场景如下:

面向用户分析的产品用于业务指标的实时仪表板异常检测部署Local安装快速启动
# 下载Pinot发行版最新版本0.12.1,需要JDK11或以上版本,JDK16除外PINOT_VERSION=0.12.1 wget https://downloads.apache.org/pinot/apache-pinot-$PINOT_VERSION/apache-pinot-$PINOT_VERSION-bin.tar.gz# 解压文件tar -zxvf apache-pinot-$PINOT_VERSION-bin.tar.gz# 导航到包含启动程序脚本的目录:cd apache-pinot-$PINOT_VERSION-bin# 有两种方法启动:快速启动或手动设置集群。# Pinot附带快速启动命令,可以在同一进程中启动Pinot组件实例,并导入预构建的数据集。下面的快速启动命令启动预装棒球数据集的Pinot,所有可用的快速入门命令列表请参见快速入门示例。./bin/pinot-admin.sh QuickStart -type batch
手动设置集群
# 如果想处理更大的数据集(超过几兆字节),可以单独启动Pinot各个组件,并将它们扩展到多个实例# 启动Zookeeper./bin/pinot-admin.sh StartZookeeper \  -zkPort 2191# 启动Pinot Controllerexport JAVA_OPTS="-Xms4G -Xmx8G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xloggc:gc-pinot-controller.log"./bin/pinot-admin.sh StartController \    -zkAddress localhost:2191 \    -controllerPort 9000# 启动Pinot Brokerexport JAVA_OPTS="-Xms4G -Xmx4G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xloggc:gc-pinot-broker.log"./bin/pinot-admin.sh StartBroker \    -zkAddress localhost:2191# 启动Pinot Serverexport JAVA_OPTS="-Xms4G -Xmx16G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xloggc:gc-pinot-server.log"./bin/pinot-admin.sh StartServer \    -zkAddress localhost:2191# 启动Kafka./bin/pinot-admin.sh  StartKafka \   -zkAddress=localhost:2191/kafka \  -port 19092
Docker安装快速启动
# 启动Apache Zookeeper、Pinot Controller、Pinot Broker和Pinot Server。创建baseballStats表启动一个独立的数据摄取作业,为baseballStats表的给定CSV数据文件构建一个段,并将该段推到Pinot Controller。向Pinot发出示例查询docker run \    -p 9000:9000 \    apachepinot/pinot:0.12.1 QuickStart \    -type batch

启动完后生成示例数据,可以通过查询控制台进行SQL编辑查询,显示查询结果并可以导出EXCEL和CSV格式文件。

官方还提供多种多种数据类型格式样例数据,比如JSON

# 启动Apache Zookeeper、Pinot Controller、Pinot Broker和Pinot Server。创建githubEvents表启动一个独立的数据摄取作业,为githubEvents表的给定JSON数据文件构建一个段,并将该段推到Pinot Controller。向Pinot发出示例查询docker run \    -p 9000:9000 \    apachepinot/pinot:0.12.1 QuickStart \    -type batch_json_index

还提供其他流式、Upsert、混合的类型,各位有兴趣可以详细查看

docker run \    -p 9000:9000 \    apachepinot/pinot:0.12.1 QuickStart \    -type batch_complex_typedocker run \    -p 9000:9000 \    apachepinot/pinot:0.12.1 QuickStart \    -type streamdocker run \    -p 9000:9000 \    apachepinot/pinot:0.12.1 QuickStart \    -type realtime_minion docker run \    -p 9000:9000 \    apachepinot/pinot:latest QuickStart \    -type stream_complex_typedocker run \    -p 9000:9000 \    apachepinot/pinot:latest QuickStart \    -type upsertdocker run \    -p 9000:9000 \    apachepinot/pinot:latest QuickStart \    -type upsert_json_indexdocker run \    -p 9000:9000 \    apachepinot/pinot:latest QuickStart \    -type hybriddocker run \    -p 9000:9000 \    apachepinot/pinot:latest QuickStart \    -type join
手动启动集群
# 创建网络,在docker中创建一个隔离的桥接网络docker network create -d bridge pinot-demo# 启动 Zookeeper,以daemon模式启动Zookeeper。这是一个单节点zookeeper设置。Zookeeper是Pinot的中央元数据存储,应该设置为用于生产的复制。更多信息请参见运行复制的Zookeeper。docker run \    --network=pinot-demo \    --name pinot-zookeeper \    --restart always \    -p 2181:2181 \    -d zookeeper:3.5.6# 启动 Pinot Controller,在守护进程中启动Pinot Controller并连接到Zookeeper。下面的命令需要一个4GB的内存容器。如果您的机器没有足够的资源,那么就调整- xms和xmx。docker run --rm -ti \    --network=pinot-demo \    --name pinot-controller \    -p 9000:9000 \    -e JAVA_OPTS="-Dplugins.dir=/opt/pinot/plugins -Xms1G -Xmx4G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xloggc:gc-pinot-controller.log" \    -d ${PINOT_IMAGE} StartController \    -zkAddress pinot-zookeeper:2181# 启动 Pinot Broker,在守护进程中启动Pinot Broker并连接到Zookeeper。下面的命令需要一个4GB的内存容器。如果您的机器没有足够的资源,那么就调整- xms和xmx。docker run --rm -ti \    --network=pinot-demo \    --name pinot-broker \    -p 8099:8099 \    -e JAVA_OPTS="-Dplugins.dir=/opt/pinot/plugins -Xms4G -Xmx4G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xloggc:gc-pinot-broker.log" \    -d ${PINOT_IMAGE} StartBroker \    -zkAddress pinot-zookeeper:2181# 启动 Pinot Server,在守护进程中启动Pinot服务器并连接到Zookeeper。下面的命令需要一个16GB的内存容器。如果您的机器没有足够的资源,那么就调整- xms和xmx。docker run --rm -ti \    --network=pinot-demo \    --name pinot-server \    -p 8098:8098 \    -e JAVA_OPTS="-Dplugins.dir=/opt/pinot/plugins -Xms4G -Xmx16G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xloggc:gc-pinot-server.log" \    -d ${PINOT_IMAGE} StartServer \    -zkAddress pinot-zookeeper:2181# 启动 Kafka,你也可以选择启动Kafka来设置实时流。这会在端口9092上打开Kafka代理。docker run --rm -ti \    --network pinot-demo --name=kafka \    -e KAFKA_ZOOKEEPER_CONNECT=pinot-zookeeper:2181/kafka \    -e KAFKA_BROKER_ID=0 \    -e KAFKA_ADVERTISED_HOST_NAME=kafka \    -p 9092:9092 \    -d bitnami/kafka:latest# 查看运行容器docker container ls -a
Docker Compose

创建docker-compose.yml文件内容如下

version: "3.7"services:  pinot-zookeeper:    image: zookeeper:3.5.6    container_name: pinot-zookeeper    ports:      - "2181:2181"    environment:      ZOOKEEPER_CLIENT_PORT: 2181      ZOOKEEPER_TICK_TIME: 2000  pinot-controller:    image: apachepinot/pinot:0.12.1    command: "StartController -zkAddress pinot-zookeeper:2181"    container_name: pinot-controller    restart: unless-stopped    ports:      - "9000:9000"    environment:      JAVA_OPTS: "-Dplugins.dir=/opt/pinot/plugins -Xms1G -Xmx4G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xloggc:gc-pinot-controller.log"    depends_on:      - pinot-zookeeper  pinot-broker:    image: apachepinot/pinot:0.12.1    command: "StartBroker -zkAddress pinot-zookeeper:2181"    restart: unless-stopped    container_name: "pinot-broker"    ports:      - "8099:8099"    environment:      JAVA_OPTS: "-Dplugins.dir=/opt/pinot/plugins -Xms4G -Xmx4G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xloggc:gc-pinot-broker.log"    depends_on:      - pinot-controller  pinot-server:    image: apachepinot/pinot:0.12.1    command: "StartServer -zkAddress pinot-zookeeper:2181"    restart: unless-stopped    container_name: "pinot-server"    ports:      - "8098:8098"    environment:      JAVA_OPTS: "-Dplugins.dir=/opt/pinot/plugins -Xms4G -Xmx16G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xloggc:gc-pinot-server.log"    depends_on:      - pinot-broker

运行docker-compose命令启动所有组件

docker-compose --project-name pinot-demo up

访问9000端口管理端点,http://mypinot:9000/

实操批导入数据准备数据
# 创建数据目录mkdir -p /tmp/pinot-quick-start/rawdata# 支持的文件格式有CSV、JSON、AVRO、PARQUET、THRIFT、ORC。创建一个/tmp/pinot-quick-start/rawdata/transcript.csv文件,内容如下studentID,firstName,lastName,gender,subject,score,timestampInEpoch200,Lucy,Smith,Female,Maths,3.8,1570863600000200,Lucy,Smith,Female,English,3.5,1571036400000201,Bob,King,Male,Maths,3.2,1571900400000202,Nick,Young,Male,Physics,3.6,1572418800000
创建Schema:模式用于定义Pinot表的列和数据类型。模式的详细概述可以在schema中找到。简单地说,将列分为3种类型
列类型描述
维度列通常用于过滤器和分组by,用于对数据进行切片和切块
度量列通常用于聚合,表示定量数据
时间可选列,表示与每行关联的时间戳

例如,在上面数据中,studententid、firstName、lastName、gender、subject列是维度列,score列是度量列,timestampInEpoch是时间列。确定了维度、指标和时间列,使用下面的参考为数据创建一个schema,创建/tmp/pinot-quick-start/transcript-schema.json

{  "schemaName": "transcript",  "dimensionFieldSpecs": [    {      "name": "studentID",      "dataType": "INT"    },    {      "name": "firstName",      "dataType": "STRING"    },    {      "name": "lastName",      "dataType": "STRING"    },    {      "name": "gender",      "dataType": "STRING"    },    {      "name": "subject",      "dataType": "STRING"    }  ],  "metricFieldSpecs": [    {      "name": "score",      "dataType": "FLOAT"    }  ],  "dateTimeFieldSpecs": [{    "name": "timestampInEpoch",    "dataType": "LONG",    "format" : "1:MILLISECONDS:EPOCH",    "granularity": "1:MILLISECONDS"  }]}
创建表配置:表配置用于定义与Pinot表相关的配置。该表的详细概述可以在表中找到。下面是上面CSV数据文件的表配置,创建表配置文件/tmp/pinot-quick-start/transcript-table-offline.json
{  "tableName": "transcript",  "segmentsConfig" : {    "timeColumnName": "timestampInEpoch",    "timeType": "MILLISECONDS",    "replication" : "1",    "schemaName" : "transcript"  },  "tableIndexConfig" : {    "invertedIndexColumns" : [],    "loadMode"  : "MMAP"  },  "tenants" : {    "broker":"DefaultTenant",    "server":"DefaultTenant"  },  "tableType":"OFFLINE",  "metadata": {}}
上传表配置和Schema
# 前面是通过docker网络创建,确保可以访问controllerHost(manual-pinot-controller为可以访问主机名、容器、IP)和controllerPort端口即可docker run --rm -ti \    --network=pinot-demo \    -v /tmp/pinot-quick-start:/tmp/pinot-quick-start \    --name pinot-batch-table-creation \    apachepinot/pinot:0.12.1 AddTable \    -schemaFile /tmp/pinot-quick-start/transcript-schema.json \    -tableConfigFile /tmp/pinot-quick-start/transcript-table-offline.json \    -controllerHost manual-pinot-controller \    -controllerPort 9000 -exec  

可以通过检查Rest API中的表配置和模式,以确保它已成功上传。

创建段:Pinot表的数据存储为Pinot段。段的详细概述可以在段中找到。为了生成一个段,首先需要创建一个作业规范yaml文件。JobSpec yaml文件包含有关数据格式、输入数据位置和pinot集群坐标的所有信息。创建/tmp/pinot-quick-start/docker-job-spec.yml文件,内容如下
executionFrameworkSpec:  name: "standalone"  segmentGenerationJobRunnerClassName: "org.apache.pinot.plugin.ingestion.batch.standalone.SegmentGenerationJobRunner"  segmentTarPushJobRunnerClassName: "org.apache.pinot.plugin.ingestion.batch.standalone.SegmentTarPushJobRunner"  segmentUriPushJobRunnerClassName: "org.apache.pinot.plugin.ingestion.batch.standalone.SegmentUriPushJobRunner"jobType: SegmentCreationAndTarPushinputDirURI: "/tmp/pinot-quick-start/rawdata/"includeFileNamePattern: "glob:**/*.csv"outputDirURI: "/tmp/pinot-quick-start/segments/"overwriteOutput: truepinotFSSpecs:  - scheme: file    className: org.apache.pinot.spi.filesystem.LocalPinotFSrecordReaderSpec:  dataFormat: "csv"  className: "org.apache.pinot.plugin.inputformat.csv.CSVRecordReader"  configClassName: "org.apache.pinot.plugin.inputformat.csv.CSVRecordReaderConfig"tableSpec:  tableName: "transcript"  schemaURI: "http://manual-pinot-controller:9000/tables/transcript/schema"  tableConfigURI: "http://manual-pinot-controller:9000/tables/transcript"pinotClusterSpecs:  - controllerURI: "http://manual-pinot-controller:9000"

使用以下命令生成一个段并上传

docker run --rm -ti \    --network=pinot-demo \    -v /tmp/pinot-quick-start:/tmp/pinot-quick-start \    --name pinot-data-ingestion-job \    apachepinot/pinot:0.12.1 LaunchDataIngestionJob \    -jobSpecFile /tmp/pinot-quick-start/docker-job-spec.yml
流式导入数据创建Kafka和主题
# 首先,需要设置一个流。Pinot为Kafka提供了开箱即用的实时摄取支持。在本地设置一个演示Kafka集群,并创建一个示例主题转录主题docker run --rm -ti \    --network pinot-demo --name=kafka \    -e KAFKA_ZOOKEEPER_CONNECT=pinot-zookeeper:2181/kafka \    -e ALLOW_PLAINTEXT_LISTENER=yes \    -e KAFKA_BROKER_ID=0 \    -e KAFKA_ADVERTISED_HOST_NAME=kafka \    -p 9092:9092 \    -d bitnami/kafka:latest          # 创建一个Kafka主题docker exec \  -t kafka \  /opt/bitnami/kafka/bin/kafka-topics.sh \  --bootstrap-server kafka:9092 \  --partitions=1 --replication-factor=1 \  --create --topic transcript-topic  
创建表配置,创建/tmp/pinot-quick-start/transcript-table-realtime.json文件,内容如下
{  "tableName": "transcript",  "tableType": "REALTIME",  "segmentsConfig": {    "timeColumnName": "timestampInEpoch",    "timeType": "MILLISECONDS",    "schemaName": "transcript",    "replicasPerPartition": "1"  },  "tenants": {},  "tableIndexConfig": {    "loadMode": "MMAP",    "streamConfigs": {      "streamType": "kafka",      "stream.kafka.consumer.type": "lowlevel",      "stream.kafka.topic.name": "transcript-topic",      "stream.kafka.decoder.class.name": "org.apache.pinot.plugin.stream.kafka.KafkaJSONMessageDecoder",      "stream.kafka.consumer.factory.class.name": "org.apache.pinot.plugin.stream.kafka20.KafkaConsumerFactory",      "stream.kafka.broker.list": "kafka:9092",      "realtime.segment.flush.threshold.rows": "0",      "realtime.segment.flush.threshold.time": "24h",      "realtime.segment.flush.threshold.segment.size": "50M",      "stream.kafka.consumer.prop.auto.offset.reset": "smallest"    }  },  "metadata": {    "customConfigs": {}  }}
上传Schema和表配置
docker run \    --network=pinot-demo \    -v /tmp/pinot-quick-start:/tmp/pinot-quick-start \    --name pinot-streaming-table-creation \    apachepinot/pinot:0.12.1 AddTable \    -schemaFile /tmp/pinot-quick-start/transcript-schema.json \    -tableConfigFile /tmp/pinot-quick-start/transcript-table-realtime.json \    -controllerHost pinot-controller \    -controllerPort 9000 \    -exec
创建数据文件用于kafka生产者发送,/tmp/pinot-quick-start/rawdata/transcript.json,内容如下
{"studentID":205,"firstName":"Natalie","lastName":"Jones","gender":"Female","subject":"Maths","score":3.8,"timestampInEpoch":1571900400000}{"studentID":205,"firstName":"Natalie","lastName":"Jones","gender":"Female","subject":"History","score":3.5,"timestampInEpoch":1571900400000}{"studentID":207,"firstName":"Bob","lastName":"Lewis","gender":"Male","subject":"Maths","score":3.2,"timestampInEpoch":1571900400000}{"studentID":207,"firstName":"Bob","lastName":"Lewis","gender":"Male","subject":"Chemistry","score":3.6,"timestampInEpoch":1572418800000}{"studentID":209,"firstName":"Jane","lastName":"Doe","gender":"Female","subject":"Geography","score":3.8,"timestampInEpoch":1572505200000}{"studentID":209,"firstName":"Jane","lastName":"Doe","gender":"Female","subject":"English","score":3.5,"timestampInEpoch":1572505200000}{"studentID":209,"firstName":"Jane","lastName":"Doe","gender":"Female","subject":"Maths","score":3.2,"timestampInEpoch":1572678000000}{"studentID":209,"firstName":"Jane","lastName":"Doe","gender":"Female","subject":"Physics","score":3.6,"timestampInEpoch":1572678000000}{"studentID":211,"firstName":"John","lastName":"Doe","gender":"Male","subject":"Maths","score":3.8,"timestampInEpoch":1572678000000}{"studentID":211,"firstName":"John","lastName":"Doe","gender":"Male","subject":"English","score":3.5,"timestampInEpoch":1572678000000}{"studentID":211,"firstName":"John","lastName":"Doe","gender":"Male","subject":"History","score":3.2,"timestampInEpoch":1572854400000}{"studentID":212,"firstName":"Nick","lastName":"Young","gender":"Male","subject":"History","score":3.6,"timestampInEpoch":1572854400000}

将示例JSON推入Kafka主题,使用从Kafka下载的Kafka脚本

bin/kafka-console-producer.sh \    --bootstrap-server kafka:9092 \    --topic transcript-topic < /tmp/pinot-quick-start/rawdata/transcript.json
本人博客网站IT小神www.itxiaoshen.com
x
推荐阅读

实时分布式低延迟OLAP数据库Apache Pinot探索实操-世界微资讯

2023-04-15 06:28:46

快资讯:足球概念上市公司股票有哪些?(2023/4/14)

2023-04-15 04:58:00

天天看点:奥园美谷:预计2022年全年亏损16.00亿至8.00亿

2023-04-14 23:40:31

【世界报资讯】一季度的外贸成绩单该怎么看详细内容

2023-04-14 21:53:21

Meta又甩出AI开源大作!将涂鸦变动画,还公开了新数据集

2023-04-14 20:33:17

2021年7月:全国各省市风力发电产量排名,新疆维吾尔自治区当月产44.9亿千瓦时登顶 世界头条

2023-04-14 19:03:04

中骏集团再度偿债5亿美元,此前2022年已偿还境内外公开债务近115亿元

2023-04-14 18:25:04

国家能源局:3月份全社会用电量同比增长5.9% 世界最新

2023-04-14 17:23:58

世界信息:北京丽星翼美医疗美容正规吗?魏志香医生介绍/双眼皮修复技术一览

2023-04-14 16:37:31

当前播报:华强北的手表,汤主的测评来了!

2023-04-14 15:55:01
相关新闻

实时分布式低延迟OLAP数据库Apache Pinot探索实操-世界微资讯

2023-04-15 06:28:46

快资讯:足球概念上市公司股票有哪些?(2023/4/14)

2023-04-15 04:58:00

天天看点:奥园美谷:预计2022年全年亏损16.00亿至8.00亿

2023-04-14 23:40:31

【世界报资讯】一季度的外贸成绩单该怎么看详细内容

2023-04-14 21:53:21

Meta又甩出AI开源大作!将涂鸦变动画,还公开了新数据集

2023-04-14 20:33:17

2021年7月:全国各省市风力发电产量排名,新疆维吾尔自治区当月产44.9亿千瓦时登顶 世界头条

2023-04-14 19:03:04

中骏集团再度偿债5亿美元,此前2022年已偿还境内外公开债务近115亿元

2023-04-14 18:25:04

国家能源局:3月份全社会用电量同比增长5.9% 世界最新

2023-04-14 17:23:58

世界信息:北京丽星翼美医疗美容正规吗?魏志香医生介绍/双眼皮修复技术一览

2023-04-14 16:37:31

当前播报:华强北的手表,汤主的测评来了!

2023-04-14 15:55:01

每日速读!英媒:银行业危机期间,嘉信理财大股东GQG Partners出清14亿美元持股

2023-04-14 14:46:49

我国持续推进优质医疗资源扩容下沉和区域均衡布局

2023-04-14 13:49:06

2022湖南株洲市石峰区乡镇(街道)所属事业单位招聘递补体检合格人员公示

2023-04-14 12:52:52

主人杯和客人杯区别 主人杯和客人杯有什么不同呢

2023-04-14 11:44:04

广西桂林:法学博士带着年幼女儿和母亲驻村 当前资讯

2023-04-14 10:49:21

腾讯控股:根据股份奖励计划发行约966.02万股新股份

2023-04-14 10:17:39

劲爆!滴滴首款概念车来了 乘客可"一键躺平"-每日动态

2023-04-14 09:36:01

天天速讯:扎根乡土 有“榕”乃大

2023-04-14 08:59:41

广州花都:靶向监督精准整治群众身边不正之风和腐败问题 天天新视野

2023-04-14 07:28:22

Pytorch中的model.train() 和 model.eval() 原理与用法解析|滚动

2023-04-14 05:48:13

【世界聚看点】评测vivo S5怎么样 爱自拍的妹子的最佳选择

2023-04-14 02:50:49

房屋租赁如何合理避税呢_房屋租赁如何合理避税 焦点报道

2023-04-13 22:41:07

【天天速看料】中南粮科院拟增资600万元,金健米业持股比例将下滑

2023-04-13 21:09:26

棽取名什么寓意起名_棽-环球热门

2023-04-13 20:05:01

天天日报丨关于星期四海能转债申购指南

2023-04-13 19:06:15

【报资讯】茶陵:“茶乡夜话”共话思政教育

2023-04-13 18:06:50

2-0和1-0!欧冠4强已浮现:皇马米兰有望会师,意甲或成最大赢家-时讯

2023-04-13 17:06:49

第一太平戴维斯:一季度深圳甲级写字楼平均租金环比下跌0.4% 环球焦点

2023-04-13 16:15:53

宁波精达(603088)4月13日主力资金净卖出1099.42万元

2023-04-13 15:28:29

迅销(06288)4月13日下午起短暂停牌 待刊发中期业绩公告

2023-04-13 14:53:44

焦点快播:长安汽车(000625):自主第二 强产品力有望托底业绩稳定性

2023-04-13 13:41:26

中牟县狼城岗镇部署开展违法违规占用耕地案件以案促改工作

2023-04-13 12:25:56

海外情报:曼联1-0塞维利亚_当前播报

2023-04-13 11:30:58

各地公安交通管理部门开展“春季守护行动” 查处公路严重交通违法行为77.6万起-当前观点

2023-04-13 10:46:25

当前资讯!强信心·开新局丨打好“优势牌” 念好“特色经”——河北冀中部分县域特色产业集群走访记

2023-04-13 10:16:18

期市早评:能源类今多强势20230413|每日精选

2023-04-13 09:05:36

全球热头条丨湖南裕能去年营收超400亿 宁德时代比亚迪为前两大客户

2023-04-13 08:24:22

全球今热点:又一位美女明星不幸去世,年仅26岁,被发现陈尸家中,死因却成谜

2023-04-13 06:56:16

当前要闻:天芒传奇三大神器 天芒传奇

2023-04-13 05:10:27

圣瓦伦丁家具介绍(圣瓦伦丁老板自杀)

2023-04-13 01:13:58

大武口区消防救援大队持续开展校园消防安全教育活动 环球快播报

2023-04-12 22:22:09

中国—东盟自贸区3.0版第二轮谈判在泰国举行 焦点信息

2023-04-12 21:15:08

长期吃红豆薏米的害处_长期吃红豆的害处

2023-04-12 19:47:48

最新资讯:外交部领事司司长吴玺会见菲律宾驻华大使吉米

2023-04-12 18:41:34

世界讯息:大龙虾多少钱一斤活的_大龙虾多少钱一斤

2023-04-12 17:50:27

将于上海车展首发亮相 一汽奔腾T90渲染图发布 世界消息

2023-04-12 16:59:31

广州知识产权法院发布2022年度诉前调解十佳典型案例

2023-04-12 16:16:35

汪清:大棚蘑菇获丰收 特色种植助振兴 速看

2023-04-12 14:24:51

南昌首届金花户外运动节滑翔伞邀请赛时间+地点+内容 天天快资讯

2023-04-12 13:03:12

环球热头条丨小时工辞职不批按旷工算合法吗

2023-04-12 12:13:50

实时焦点:广旅桂林投资公司党委书记庞华:聚力打造文旅IP 完善产业链布局

2023-04-12 11:10:46

行而不辍,未来可期——融通高中A-LEVEL班优秀毕业生饶子瑶|环球速看料

2023-04-12 10:50:12

北京市气象台2023年4月12日09时55分发布沙尘蓝色预警信号|环球速递

2023-04-12 09:52:30

《欢乐颂》系列越拍越烂,为何还要一拍再拍|环球热闻

2023-04-12 09:03:14

娄底市贺国平心理健康名师工作室举行 “青少年学习能力提升”主题送教活动

2023-04-12 08:23:39

焦点热议:香蕉水是什么

2023-04-12 06:59:53

2023淘宝天猫家装家居策略发布会召开 目标打造30个年成交过亿直播间-焦点要闻

2023-04-12 05:03:09

环球快资讯:楚雄州公安局交警支队“四强化”全面开展2023年道路交通事故预防“减量控大”第二季度集中攻坚行动工作

2023-04-12 00:14:54

即时看!今天最新消息 吉利关联公司退出集度汽车?回应:百度和吉利所持股份不变

2023-04-11 22:00:57

天天信息:英维克(002837)年报点评:数据中心储能双重驱动成长 液冷散热加速渗透

2023-04-11 20:33:54

2023青岛凤凰音乐节票档有哪些? 观天下

2023-04-11 19:07:25

【焦点热闻】穗恒运A(000531.SZ):一季度预盈5500万元-8200万元 同比扭亏

2023-04-11 18:20:01

新一轮政策资助即将到账!青岛492个标准化资助奖励项目进入专家评审_世界最新

2023-04-11 17:41:08

全球经济增长预测上调 国际黄金日K收阴

2023-04-11 16:48:19

沃华医药:公司目前有沃华心可舒片、骨疏康胶囊/颗粒、荷丹片/胶囊、脑血疏口服液四大独家医保支柱产品、15个独家产品、162个药品批准文号,构筑了强大的独家产品线

2023-04-11 15:55:40

永和智控:园区厂房洁净车间已装修完毕,厂房预计4月下旬交付使用,预计5月中旬进行试生产阶段 速看料

2023-04-11 14:54:05

【环球聚看点】市场对供需形势保持观望 国际油价10日下跌

2023-04-11 14:01:09

如何使用Beats耳机蓝牙耳机

2023-04-11 12:48:02

株硬荣获“十大科技创新技术”奖

2023-04-11 11:52:43

艺术 | 《鸟鸣录》——孙初个展在鸟巢艺术空间开幕

2023-04-11 11:19:02

沙滩排球世界巡回赛伊塔佩马站:薛晨/夏欣怡夺冠_当前看点

2023-04-11 10:15:26

速食食品遭遇“命运”瓶颈,休闲食品逻辑真适用做餐饮?|天天热文

2023-04-11 09:57:32

今日热搜:被骗出国做“杀猪盘”小伙自述九死一生

2023-04-11 08:56:47

【环球播资讯】周杰伦起诉网易不正当竞争 或与后者旗下游戏擅自赠送其演唱会门票有关

2023-04-11 07:40:15

艾雷萨拉斯皇家徽记_盗贼的 ldquo 埃雷萨拉斯皇家徽记 rdquo 怎么拿 快看点

2023-04-11 06:10:20

【天天播资讯】海森药业:合作研发方员工尚未离职先入股 否认合作研发产品规模化使用或“露马脚”

2023-04-11 01:28:59

天天热头条丨容知日新:2022年净利润同比增长42.86% 拟10转4.8派5.4元

2023-04-10 21:55:21

天天快资讯丨访华之后,马克龙对于“美国陷阱”的认识更深刻了

2023-04-10 20:42:55

全球报道:2023年河南省服务型制造示范企业(平台)拟确定名单公示

2023-04-10 19:14:01

市场日报|A股迎来全面注册制!首批10只新股集体暴涨;遭华为「打脸」,这只股票开盘一字跌停;AI概念大幅回落,三六零跌停 天天观焦点

2023-04-10 18:25:56

文旅部:建立舆情监测和迅速响应机制

2023-04-10 16:40:47

三年级第二课生字词语组词 全球微资讯

2023-04-10 15:53:32

Android 手机在这方面可能比 iPhone 16 更好

2023-04-10 13:43:51

华懋科技:徐州博康已有多款高端光刻胶产品通过多家下游客户验证并获取订单-天天精选

2023-04-10 12:30:49

2023杨凌农科城马拉松赛鸣枪开跑 当前播报

2023-04-10 11:32:27

南财基金通·股票型基金收益排行榜(4月7日) 每日速看

2023-04-10 11:01:45

我国构建世界首个番茄超泛基因组 独家

2023-04-10 09:51:25

马克龙表态:欧洲须减少对美依赖 避免卷入中美台湾问题对抗

2023-04-10 08:58:04

95后首席焊工:用技术突围无数奖牌 天天快讯

2023-04-10 08:02:47

华为:没有任何意愿及可能与新东方新材料合资运营TD TECH

2023-04-10 06:13:29

天天时讯:半场-马丁内利传射热苏斯头槌萨拉赫破门 阿森纳2-1领先利物浦

2023-04-10 01:04:35

总台海峡时评:坚决有力回击一切“台独”分裂行径! 当前速看

2023-04-09 21:40:12

巴媒:卢拉访华团再添12名国会议员随行,参议院议长也将加入-世界热推荐

2023-04-09 19:42:24

环球即时:特斯拉储能超级工厂项目正式落沪

2023-04-09 17:59:54

新乡赛再爆大冷!2位世界冠军出局,林诗栋进16强为国乒第一人

2023-04-09 16:10:20

最新:东部战区组织环台岛战备警巡和演习 军事专家:或成今后惩戒“台独”新模式

2023-04-09 14:39:01

巴以局势骤然升级,美国防长致电以色列防长表达支持

2023-04-09 10:45:42

买房看房的时候需要了解小区的绿化率与容积率

2023-04-09 09:02:30

打造“互联网 就业”新模式 多方协同提高直播带岗服务品质 每日速读

2023-04-09 06:52:13

ssr是什么意思形容女生_ssr是什么_天天热讯

2023-04-09 03:47:15