
数据库
文章平均质量分 94
各种数据库的相关文章(sql,nosql,olap,oltp)
迷雾总会解
我来,我见,我征服!
展开
-
Kudu-集群管理、基架感知、透明分层存储管理、性能优化
Kudu在安装时默认就安装了命令行工具,只需要执行Kudu命令就能看到所有的命令分组:一共有14个分组,组下面才是具体的命令,分组如下:执行kudu命令组就可以列出下面的子命令:Kudu提供了丰富的命令行工具方便用户管理集群,这里选择一些常见且命令做一下介绍。(1)kudu cluster举例:(2)kudu master举例:(3)kudu tserver举例:(4)kudu table举例:(5)kudu tablet举例:(6)kudu perf举例:Kudu Web界面WebUI端口原创 2023-07-11 18:06:04 · 1937 阅读 · 0 评论 -
Kudu-客户端API编程、生态整合(Spark、Flink、Impala)
Kudu提供了主流语言客户端API,核心类、方法是一致的,我们首先简要盘点下核心的这些类以便于我们写代码。(1)Kudu client(2)Schema表示表结构,主要是column的集合。该类提供了一些工具方法用于查询操作。(3)ColumnSchema表示一column,使用builder构建。(4)CreateTableOptionsBuilder模式类,用于创建表。(5)KuduTable表示集群上的一张表。含有当前表结构信息,隶属于特定AsyncKuduClient。(6)Session(7)In原创 2023-07-11 18:04:19 · 1246 阅读 · 0 评论 -
Kudu-基本架构、模式设计、Docker部署
Kudu是一个分布式列式存储引擎/系统,由Cloudera开源后捐献给Apache基金会很快成为顶级项目。用于对大规模数据快速读写的同时进行快速分析。官网:https://kudu.apache.org/Kudu运行在一般的商用硬件上,支持水平扩展和高可用,集HDFS的顺序读和HBase的随机读于一身,同时具备高性能的随机写,以及很强大的可用性(单行事务,一致性协议),支持与Impala/spark计算引擎。原创 2023-07-11 18:02:18 · 2254 阅读 · 0 评论 -
MIT6.830-lab1-SimpleDB(数据库的基本存储Tuple、TupleDesc、HeapPage、HeapFile、SeqScan、BufferPool)
Tuple,TupleDesc,HeapPage,HeapFile,SeqScan,BufferPool等。Tuple和TupleDesc是数据库表的最基本元素了。Tuple就是一个若干个Field的数组,TupleDesc则是一个表的meta-data,包括每列的field name和type。BufferPool是用来做缓存的,getPage会优先从这里拿,如果没有,才会调用File的readPage去从文件中读取对应page,disk中读入的page会缓存在其中。原创 2022-10-19 17:26:42 · 2416 阅读 · 0 评论 -
MIT6.830-lab2-SimpleDB Operators(数据库的操作算子Filter、Join、Aggregates、Insertion and Deletion,以及页LRU淘汰策略)
在6.830的Project2中,我们要实现常见的SQL语句所需要的数据库操作,在Project1中,我们已经实现了一种顺序扫描的操作SeqScan,它的实现方式是利用SimpleDB的Heap File类提供的迭代器来遍历整个数据表文件中的所有元组信息。Filter:按条件筛选符合的元组;Join:将两个表中符合条件的元组进行join操作;Aggregate:按照一定的目标对表中的元组进行聚合运算;Insert和Delete:插入、删除元组。原创 2022-10-19 19:28:59 · 1322 阅读 · 0 评论 -
MIT6.830-lab3-Query Optimization(数据库的查询优化IntHistogram、TableStats、join代价估计、最佳join order获取)
MIT6.830的lab3中,我们主要需要实现一个基于cost的查询优化模块,这个模块的主要作用是在SimpleDB处理Join等SQL语句的时候可以对输入的SQL查询进行优化,并且我们这里实现的是最简单的基于cost的查询优化模块,这里的cost会根据SimpleDB中数据表的统计信息计算出来,而这种统计信息就来自于之前实现的存储模块。原创 2022-10-19 19:51:04 · 942 阅读 · 0 评论 -
MIT6.830-lab4-SimpleDB Transactions(数据库的事务LockManager、事务操作、死锁处理)
MIT6.830的lab4中,我们主要需要实现事务处理和并发相关的功能,我们需要为SimpleDB设计一个二阶段锁的管理器。事务是一组以原子方式执行的数据库操作(例如,插入、删除和读取);也就是说,要么所有的动作都完成了,要么一个动作都没有完成。原子性:通过两段锁协议和BufferPool的管理实现simpleDB的原子性;一致性:通过原子性实现事务的一致性,simpleDB中没有解决其他一致性问题(例如,键约束);隔离性:严格的两段锁提供隔离;持久性:事务提交时将脏页强制写进磁盘。原创 2022-10-19 19:56:38 · 1110 阅读 · 0 评论 -
MIT6.830-lab5-B+ Tree Index(数据库的索引B+树的搜索、插入、删除窃取、删除合并)
MIT6.830的lab5中,我们将实现 B+ 树索引以进行高效查找和范围扫描。项目已经提供实现树结构所需的所有低级代码。我们所要做的是实现搜索、拆分页面、在页面之间重新分配元组以及合并页面。实现B+树的搜索,根据给定的key查找适当的页节点;实现内部节点、页节点的拆分,当页面中key的数量大于n-1时,对页面进行拆分;实现节点的重新分配,当删除key后如果页面中key的数量小于m/2 时,从其兄弟节点“窃取”一个key;原创 2022-10-19 20:11:32 · 1201 阅读 · 0 评论 -
MIT6.830-lab6-Rollback and Recovery(数据库的日志回滚和恢复)
MIT6.830的lab6中,我们将实现日志的回滚和崩溃恢复。rollback:当一个事务显式执行失败后,就要进行回滚,我们要做的就是将数据库回滚到事务开始前的状态;Recovery:当数据库崩溃后,再一次重启就需要根据log日志进行数据恢复。在进行我们的任务之前,我们需要了解一些基本概念。原创 2022-10-20 17:01:38 · 1547 阅读 · 0 评论 -
时间的标准与格式
打开你电脑上的日期时间设置,你会发现有的的国家采。这又是一个标准问题,当前的情况是,各个国家有符合本地习惯的日期时间格式标准,同时国际上也有诸多日期时间格式标准,比如 ISO 8601 和RFC3339 等。国际标准 ISO 8601,是国际标准化组织的日期和时间的表示方法和我们之前提过的UTC 不同,UTC 是一种时间标准,而 ISO 8601 是一种标准的时间格式,大多数的编程语言都支持。三是通过固定频率的震动,最早是伽利略通过教堂的吊灯发现了摆的等时性,也就是摆角较小时,吊灯摆动一次的时间是相同的。原创 2023-07-06 22:12:34 · 2030 阅读 · 0 评论 -
InfluxDB-FLUX查询优化、使用 InfluxDB 搭建报警系统
监控其实每隔一段时间对数据计算一下。比如,我有一个一氧化碳浓度传感器, 每 1分钟我就算一下这 1 分钟内室内一氧化碳浓度的平均值。将这个结果跟一个写死的标准值做比较,如果超过了就报警。这就是监控的基本逻辑。所以,InfluxDB 中的监控其实也是一个 FLUX 脚本写的定时任务。只不过,不管是在HTTP API 还是在Web UI 上,InfluxDB 都把它和定时任务分离区别对待了。原创 2023-07-06 22:12:55 · 3265 阅读 · 0 评论 -
InfluxDB-使用 InfluxDB 模板、定时任务、仪表盘、服务进程参数、迁移数据
InfluxDB 模板是一份 yaml 风格的配置文件。它包含了一套完整的仪表盘、Telegraf 配置和报警配置。InfluxDB 模板力图保证开箱即用,把 yaml 文件下载下来,往 InfluxDB 里一导,从数据采集一直到数据监控报警就全部为你创建好。InfluxDB 官方在 github 上收录了一批模板。开发前可以在这里逛一逛,看有没有可以直接拿来用的。原创 2023-07-06 16:40:46 · 2585 阅读 · 0 评论 -
InfluxDB-与IndluxDB进行交互、InfluxDB命令行工具、JAVA操作InfluxDB
你常见的认证方式可能是将用户名和密码放到 post 请求的请求体中,再发送给服务端进行认证。不过我们刚才并没有在请求体里放用户名和密码,而是配置了一个叫Basic auth 认证的东西。这个功能叫做 http 基本认证,是http 协议的一部分。基本认证的默认实现是:把用户名和密码用英文冒号拼起来,也就成了 tony:11111111再将拼起来的字符串用 Base64 算法编码。( tony:11111111 的 Base64 编码为dG9ueToxMTExMTExMQ==)原创 2023-07-06 16:40:11 · 3334 阅读 · 0 评论 -
InfluxDB-FLUX语法介绍以及查询InfluxDB
Flux 是一种函数式的数据脚本语言,它旨在将查询、处理、分析和操作数据统一为一种语法。想要从概念上理解 FLUX,你可以想想水处理的过程。我们从源头把水抽取出来,然后按照我们的用水需求,在管道上进行一系列的处理修改(去除沉积物,净化)等,最终以消耗品的方式输送到我们的目的地(饮水机、灌溉等)。注意:InfluxData 公司对 FLUX 语言构想并不是仅仅让它作为 InfluxDB 的特定查询语言,而是希望它像 SQL 一样,成为一种标准。原创 2023-07-06 16:34:45 · 11020 阅读 · 0 评论 -
InfluxDB-简介、理论原理介绍以及InfluxDB入门操作
InfluxDB 是一种时序数据库,时序数据库通常被用在监控场景,比如运维和 IOT(物联网)领域。这类数据库旨在存储时序数据并实时处理它们。比如。我们可以写一个程序将服务器上 CPU 的使用情况每隔 10 秒钟向 InfluxDB 中写入一条数据。接着,我们写一个查询语句,查询过去 30 秒 CPU 的平均使用情况,然后让这个查询语句也每隔 10 秒钟执行一次。最终,我们配置一条报警规则,如果查询语句的执行结果>xxx,就立刻触发报警。原创 2023-07-03 17:08:04 · 53450 阅读 · 3 评论 -
Telegraf介绍和使用(安装、使用、内部数据结构-InfluxDB行协议、配置、架构、Glob的使用、插件的集成和实现、集合Prometheus)
Telegraf是一个基于插件的开源指标采集工具。本身是为InfluxDB(一款时序数据库)量身打造的数据收集器,但是它过于优秀,能够将抓取的数据写到很多地方,尤其在时序数据库领域,很多时序数据库都能够与它配合使用。通常,它每隔一段时间抓取一批指标数据(比如机器的CPU使用情况,磁盘的IO,网络情况,MySQL服务端的的会话数等等)并将他们发送到时序数据库、消息队列中或者自定义导出到某个地方。供下游的应用处理(比如报警)。Telegraf也能够对外提供一个服务,等待客户端推送数据。原创 2023-07-01 23:44:58 · 27143 阅读 · 3 评论 -
数据湖Iceberg介绍和使用(集成Hive、SparkSQL、FlinkSQL)
为了解决数据存储和计算引擎之间的适配的问题,Netflix开发了Iceberg,2018年11月16日进入Apache孵化器,2020 年5月19日从孵化器毕业,成为Apache的顶级项目。Iceberg是一个面向海量数据分析场景的开放表格式(Table Format)。表格式(Table Format)可以理解为元数据以及数据文件的一种组织方式,处于计算框架(Flink,Spark…)之下,数据文件之上。大数据领域发展至今已经经历了相当长时间的发展和探索,虽然大数据技术的出现和迭代降低了用户处理海量数据的原创 2023-07-01 10:51:27 · 7204 阅读 · 1 评论 -
火山模型和优化(向量化执行、编译执行)
早期数据库受限于硬件水平,IO、内存和CPU资源都非常昂贵,所以大多数数据库的执行器都采用的是传统的火山模型(经典的Volcano 模型)。火山模型又称 Volcano Model 或者 Pipeline Model。该计算模型将关系代数中每一种操作抽象为一个 Operator,将整个 SQL 构建成一个 Operator 树,从根节点到叶子结点自上而下地递归调用 next() 函数。调用子节点Operator的next() 接口获取一行数据(tuple);原创 2023-06-23 19:55:26 · 2568 阅读 · 0 评论 -
Doris-07-索引的详细介绍(前缀索引、Ordinal索引、Zone Map索引、Bitmap索引、Bloom Filter索引、NGram BloomFilter索引、倒排索引)
Apache Doris 存储引擎采用类似LSM树的结构提供快速的数据写入支持。进行数据导入时,数据会先写入 Tablet 对应的 MemTable 中,当 MemTable 写满之后,会将 MemTable 里的数据刷写(Flush)到磁盘,生成一个个不超过 256MB 的不可变的 Segment 文件。MemTable 采用SkipList的数据结构,将数据暂时保存在内存中,SkipList 会按照 Key 对数据行进行排序,因此,刷写到磁盘上的 Segment 文件也是按 Key 排序的。原创 2023-06-23 19:47:07 · 8160 阅读 · 0 评论 -
Doris-06-监控、报警以及Doris的优化
过去 Apache Doris 的 SQL 执行引擎是基于行式内存格式以及基于传统的火山模型进行设计的,在进行 SQL 算子与函数运算时存在非必要的开销,导致 Apache Doris 执行引擎的效率受限,并不适应现代 CPU 的体系结构。向量化执行引擎的目标是替换 Apache Doris 当前的行式 SQL 执行引擎,充分释放现代 CPU 的计算能力,突破在 SQL 执行引擎上的性能限制,发挥出极致的性能表现。所以在建表时,将对应的列设置为 NULL 通常会影响向量化执行引擎的性能。原创 2023-06-23 19:40:32 · 2099 阅读 · 0 评论 -
Doris-05-集成Spark、Flink、Datax,以及数据湖分析(JDBC、ODBC、ES、Hive、多源数据目录Catalog)
准备表和数据:Spark 读写 DorisSpark Doris Connector 可以支持通过 Spark 读取 Doris 中存储的数据,也支持通过Spark写入数据到Doris。代码库地址:https://github.com/apache/incubator-doris-spark-connector创建 maven 工程,编写 pom.xml 文件:使用 Spark Doris ConnectorSpark Doris Connector 可以支持通过 Spark 读取 Doris 中存原创 2023-06-23 19:38:20 · 2538 阅读 · 0 评论 -
Doris-04-数据导入和导出&数据备份和恢复
导入(Load)功能就是将用户的原始数据导入到 Doris 中。导入成功后,用户即可通过Mysql 客户端查询数据。为适配不同的数据导入需求,Doris 系统提供了 6 种不同的导入方式。每种导入方式支持不同的数据源,存在不同的使用方式(异步,同步)。所有导入方式都支持 csv 数据格式。其中 Broker load 还支持 parquet 和 orc 数据格式。(1)适用场景源数据在 Broker 可以访问的存储系统中,如 HDFS。数据量在几十到百 GB 级别。(2)基本原理用户在提交导入任务后,FE原创 2023-06-23 19:36:33 · 4868 阅读 · 0 评论 -
Doris-03-Doris的查询(Join查询、去重)
HLL 是基于 HyperLogLog 算法的工程实现,用于保存 HyperLogLog 计算过程的中间结果,它只能作为表的 value 列类型、通过聚合来不断的减少数据量,以此来实现加快查询的目的,基于它得到的是一个估算结果,误差大概在1%左右,hll 列是通过其它列或者导入数据里面的数据生成的,导入的时候通过 hll_hash 函数来指定数据中哪一列用于生成 hll 列,它常用于替代 count distinct,通过结合 rollup 在业务上用于快速计算uv等。如果是多分区表,则会有多个。原创 2023-06-23 19:28:20 · 4260 阅读 · 0 评论 -
Doris-02-数据表的操作(建表、数据模型Aggregate-Uniq-Duplicate、动态分区、临时分区、Rollup、物化视图等)
以 AGGREGATE KEY 数据模型为例进行说明。更多数据模型参阅 Doris 数据模型。列的基本类型,可以通过在 mysql-client 中执行 HELP CREATE TABLE;查看。AGGREGATE KEY 数据模型中,所有没有指定聚合方式(SUM、REPLACE、MAX、MIN)的列视为 Key 列。而其余则为 Value 列。Key 列必须在所有 Value 列之前。尽量选择整型类型。因为整型类型的计算和查找比较效率远高于字符串。原创 2023-06-23 19:24:10 · 1934 阅读 · 0 评论 -
Doris-01-Doris的简介和安装
Apache Doris 由百度大数据部研发(之前叫百度 Palo,2018 年贡献到 Apache 社区后,更名为 Doris ),在百度内部,有超过 200 个产品线在使用,部署机器超过 1000 台,单一业务最大可达到上百 TB。Apache Doris 是一个现代化的 MPP(Massively Parallel Processing,即大规模并行处理)分析型数据库产品。仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析。原创 2023-06-23 19:19:42 · 1673 阅读 · 0 评论 -
Druid的介绍、使用和原理架构(数据摄取、数据查询)
Druid是MetaMarket公司研发的一款针对海量数据进行高性能实时分析的OLAP引擎(包含存储引擎和分析引擎当前已经捐献给Apache基金会。低延迟交互式查询:Druid提供低延迟实时数据摄取(入库),并采用预聚合、列式存储、位图索引 等手段使得海量数据分析能够亚秒级响应。高可用性( High Available ):Druid 使用 HDFS/S3 作为 Deep Storage,Segment 会在多个Historical 节点上进行加载;摄取数据时也可以多副本摄取,保证数据可用性和容错性。原创 2023-06-22 21:43:18 · 8059 阅读 · 0 评论 -
Kylin的介绍、使用和原理架构(Kylin3.0和Kylin4.0,Cube,去重原理,性能优化,MDX For Kylin,BI工具集成)
Apache Kylin是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc开发并贡献至开源社区。它能在亚秒内查询巨大的Hive表。在Apache Kylin的现有实现中,Cube的每个Segment都会创建独立的字典,这种方式会导致相同数据在不同Segment字典中被映射成不同的值,这会导致最终的去重结果出错。原创 2023-06-22 21:28:33 · 4651 阅读 · 0 评论 -
Impala的介绍、使用和原理架构
impala是cloudera提供的一款高效率的sql查询工具,提供实时的查询效果,官方测试性能比hive快10到100倍,其sql查询比sparkSQL还要更加快速,号称是当前大数据领域最快的查询sql工具,impala是参照谷歌的新三篇论文(Caffeine–网络搜索引擎、Pregel–分布式图计算、Dremel–交互式分析工具)当中的Dremel实现而来,其中旧三篇论文分别是(BigTable,GFS,MapReduce)分别对应我们即将学的HBase和已经学过的HDFS以及MapReduce。原创 2023-06-22 21:10:37 · 5689 阅读 · 0 评论 -
Presto的介绍、使用和原理架构
Presto是一款Facebook开源的MPP架构的OLAP查询引擎,可针对不同数据源执行大容量数据集的一款分布式SQL执行引擎,数据量支持GB到PB字节,主要用来处理秒级查询的场景。Presto 本身并不存储数据,,但是可以接入多种数据源,并且支持跨数据源的级联查询,而且基于内存运算,速度很快,实时性高。注意:虽然Presto可以解析SQL,但它不是一个标准的数据库。不是MySQL、Oracle的代替品,也不能用来处理在线事务 (OLTP)。适合:PB级海量数据复杂分析,交互式SQL。原创 2023-06-15 17:32:55 · 9595 阅读 · 1 评论 -
MDX&Mondrian介绍
MDX(Multidimensional Expressions)是多维数据库(OLAP 数据库)的查询语言。Mondrian是一个开源项目。一个用Java写成的OLAP引擎。它用MDX语言实现查询,从关系数据库(RDBMS)中读取数据。然后经过java API以多维的方式对结果进行展示。它实现了MDX语言、XML解析、JOLAP规范。Mondrian的使用方式同JDBC驱动类似。可以非常方便的与现有的Web项目集成。原创 2023-04-06 20:05:30 · 960 阅读 · 2 评论 -
去重方法-精确去重(Kylin的去重)
在 OLAP 数据分析领域,去重计数(count distinct)是非常常见的需求(这可以作为一个度量),根据去重结果的要求分为近似去重和精确去重(在Kylin中,可以自行选择)。原创 2023-04-06 19:51:20 · 902 阅读 · 0 评论 -
Hudi-集成 Hive
一般来说 Hudi 表在用 Spark 或者 Flink 写入数据时会自动同步到 Hive 外部表(同6.2), 此时可以直接通过 beeline 查询同步的外部表,若写入引擎没有开启自动同步,则需要手动利用 hudi 客户端工具 run_hive_sync_tool.sh 进行同步,具体后面介绍。Hive sync tool提供三种同步模式,JDBC,HMS,HIVEQL。为了向后兼容旧的Hudi版本,提供了一个可选的配置 --skip-ro-suffix,如果需要,可以关闭’_ro’后缀。原创 2023-02-13 20:52:15 · 2856 阅读 · 0 评论 -
Hudi-集成Flink
Hudi集成Flink原创 2023-02-13 20:50:52 · 1002 阅读 · 0 评论 -
Hudi-基本概念(时间轴、文件布局、索引、表类型、查询类型、数据写、数据读、Compaction)
写入过程充分优化了文件存储的小文件问题,Copy On Write 写会一直将一个 bucket (FileGroup)的 base 文件写到设定的阈值大小才会划分新的 bucket;Merge On Read 写在同一个 bucket 中,log file 也是一直 append 直到大小超过设定的阈值 roll over。原创 2023-02-13 20:21:28 · 2436 阅读 · 0 评论 -
Hudi-并发控制
针对写入操作(upsert、insert等)利用乐观并发控制来启用多个writer将数据写到同一个表中,Hudi支持文件级的乐观一致性,即对于发生在同一个表中的任何2个提交(写入),如果它们没有写入正在更改的重叠文件,则允许两个写入都成功。Hudi默认这种模型。Hudi写入parquet文件,需要使用一定的堆外内存,如果遇到此类故障,请考虑设置类似 spark.yarn.executor.memoryOverhead或 spark.yarn.driver.memoryOverhead的值。原创 2023-02-13 20:39:43 · 1577 阅读 · 0 评论 -
Hudi-集成Spark之DeltaStreamer导入工具
需要把hudi-utilities-bundle_2.12-0.12.0.jar放入spark的jars路径下,否则报错找不到一些类和方法。(1)定义arvo所需schema文件(包括source和target)(3)根据源码里提供的模板,编写自己的kafka source的配置文件。(2)拷贝hudi配置base.properties。启动kafka集群,创建测试用的topic。(2)指定location创建hudi表。(4)将配置文件上传到hdfs。(1)启动spark-sql。(3)查询hudi表。原创 2023-02-13 20:38:39 · 467 阅读 · 0 评论 -
Hudi-集成Spark之code方式
Hudi-集成Spark之code方式。原创 2023-02-13 20:37:05 · 173 阅读 · 0 评论 -
Hudi-集成Spark之spark-sql方式
hudi 支持使用 bulk_insert 作为写操作的类型,只需要设置两个配置:hoodie.sql.bulk.insert.enable 和 hoodie.sql.insert.mode。(5)通过 CTAS (Create Table As Select)建表为了提高向 hudi 表加载数据的性能,CTAS 使用批量插入作为写操作。(4)在已有的 hudi 表上创建新表,不需要指定模式和非分区列(如果存在)之外的任何属性,Hudi 可以自动识别模式和配置。(2)创建一个 mor 非分区表。原创 2023-02-13 20:27:16 · 1831 阅读 · 0 评论 -
Hudi-集成Spark之spark-shell 方式
我们希望类似hive的 "insert overwrite "操作,以忽略现有数据,只用提供的新数据创建一个提交。注意:该表有三级分区(区域/国家/城市),在0.9.0版本以前的hudi,在load中的路径需要按照分区目录拼接"*",如:load(basePath + “/查询特定时间点的数据,可以将endTime指向特定时间,beginTime指向000(表示最早提交时间)新增数据,生成一些数据,将其加载到DataFrame中,然后将DataFrame写入Hudi表。目前支持三种查询时间格式,如下所示。原创 2023-02-13 20:23:04 · 569 阅读 · 0 评论 -
Hudi-简介和编译安装
Apache Hudi(Hadoop Upserts Delete and Incremental)是下一代流数据湖平台。Apache Hudi将核心仓库和数据库功能直接引入数据湖。Hudi提供了表、事务、高效的upserts/delete、高级索引、流摄取服务、数据集群/压缩优化和并发,同时保持数据的开源文件格式。Apache Hudi不仅非常适合于流工作负载,而且还允许创建高效的增量批处理管道。Apache Hudi可以轻松地在任何云存储平台上使用。Hudi的高级性能优化,使分析工作负载更快的任何流行的原创 2023-02-13 20:00:45 · 2362 阅读 · 0 评论