- 博客(14)
- 收藏
- 关注
原创 Apache Iceberg源码分析:数据写入流程
在上一篇文章中我们主要讲解了iceberg各个元数据文件中的数据组织形式,那么这些元数据是怎么生成的呢?如何通过spark写入iceberg?本文将带大家简单了解一下使用spark 2.4.7 batch写入iceberg的整体流程。spark写入示例 本文主要演示如何使用iceberg hadoopTable写入数据,hadoopCatalog和hiveCatalog在使用上大同小异。import org.apache.iceberg.hadoop.HadoopTablesimport or
2020-12-29 17:43:30
2885
1
原创 Apache Iceberg源码分析:数据存储格式
Apache Iceberg作为一款新兴的数据湖解决方案在实现上高度抽象,在存储上能够对接当前主流的HDFS,S3文件系统并且支持多种文件存储格式,例如Parquet、ORC、AVRO。相较于Hudi、Delta与Spark的强耦合,Iceberg可以与多种计算引擎对接,目前社区已经支持Spark读写Iceberg、Impala/Hive查询Iceberg。本文基于Apache Iceberg 0.10.0,介绍Iceberg文件的组织方式以及不同文件的存储格式。Iceberg Table Form
2020-12-25 16:13:36
3125
3
原创 记InfluxDB线上内存升高且持续高水位问题处理过程
最近线上使用InfluxDB时遇到当进行某个大查询后,内存始终保持在很高的水位,并且改内存水位一直保持很高的水平,没有下降的痕迹,排查后发现线上的InfluxDB是使用golang 1.13进行编译的,并且线上的centos系统使用的是linux 4.9的内核,linux系统内核在4.5版本之后就支持MADV_FREE操作,g...
2020-04-11 13:00:11
3852
2
原创 InfluxDB数据读取流程
简化版读取流程为了方便理解,在这边先简要说明InfluxDB读取的大致流程:InfluxDB在进行select查询时会将查询WHERE分为两部分:field过滤和tag过滤。首先会将tag过滤提取出来从倒排索引文件TSL以及TSI中读取满足WHERE条件的SeriesID通过SeriesID从SeriesIndex中获取对应的SeriesKey所在的SeriesSegment文件以及在文件...
2019-12-25 17:53:11
3215
原创 Apache Calcite VolcanoPlanner源码学习
calcite VolcanoPlanner是基于Cascades模型的自顶向下的查询优化器,具体模型细节可以参见Cascade模型,Volcano模型 在这里以举例的方式解释VolcanoPlanner的整体工作流程// SqlVolcanoTest.javapublic class SqlVolcanoTest { private static final Logger LOG...
2019-12-09 16:28:45
1353
1
原创 Apache Calcite HepPlanner源码学习
calcite提供了两种查询优化器:基于规则的启发式优化器HepPlanner(rule-based optimizer RBO)基于代价的VolcanoPlanner(cost-based optimizer CBO)本篇介绍HepPlanner的工作原理。在HepPlannerTest.java中添加如下代码进行源码分析:// HepPlannerTest.java @Tes...
2019-12-09 16:28:16
952
原创 Apache Calcite converter源码学习
当sqlNode经过验证后,calcite通过converter将sqlNode转化为relNode,也就是将AST转化为逻辑执行计划。 final SqlNode validatedQuery = validator.validate(sqlQuery); RelRoot root = converter.convertQuery(validatedQuery, false, tru...
2019-12-09 16:27:47
991
1
原创 Apache Calcite validator源码学习
Apache Calcite是一款基础SQL处理框架,该框架提供SQL解析优化等功能,并被广泛运用于Apache Hive,Drill,Flink等项目中。Apache Calcite架构 Apache Calcite整体架构如下图所示validate过程 我们在SqlValidatorTest.java文件中添加如下代码,通过举例进行说明// SqlValidatorTest.ja...
2019-12-09 16:27:23
1211
原创 InfluxDB文件结构解析
influxDB文件结构解析InfluxDB文件目录结构InfluxDB文件目录结构 InfluxDB文件目录结构如上图所示,从图中我们可以看出InfluxDB主目录下有3个子目录:data,wal,meta:data:存放时序数据以及其索引文件wal: 存放插入数据时产生的write ahead log(wal)meta:存放元数据...
2019-09-30 16:57:38
3711
11
原创 InfluxDB基础介绍
influxdb基础介绍引言InfluxDB基础介绍InfluxDB数据模型InfluxDB数据架构引言随着工业互联网的发展,时序数据库(Time Series Database)受到越来越多的关注,其中受到大众广泛使用并关注的当属InfluxDB,如下图所示:为了更好的理解InfluxDB的工作原理,我会按以下这几个方面对InfluxDB 1.7.x进行一个整体的介绍: Influ...
2019-08-18 14:08:49
401
原创 hbase伪分布式安装
hbase伪分布式安装安装准备部署hadoop部署zookeeper部署hbase安装准备下载hadoop安装包下载hbase安装包(下载二进制包binary即可)下载zookeeper安装包部署hadoop修改hadoop-x.x.x/etc/hadoop/core-site.xml文件<configuration> <property> ...
2019-07-02 19:18:03
163
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人