包含标签 parquet 的文章

DataX和Canal相关

DataX:读写插件,Job任务拆分,Task和Task Group,transform(filter,substr,replace,可自定义),流控,脏数据,数据库冥等写入,ETL架构。Canal:Server(服务端-客户端模式,嵌入式模式),多个instance,包括:eventParser (数据源接入,模拟slave协议和master进行交互,协议解析)、eventSink (Parser和Store链接器,进行数据过滤,加工,分发的工作)、eventStore (数据存储)、metaManager (增量订阅&消费信息管理器)

阅读全文

Parquet for Spark

Spark执行Delta的过程,通过自定义的format格式,到DataFrameWriter.saveToV1Source,在是到DeltaDataSource#createRealation,写入做优化事务处理,再用FileFormatWriter创建多个Task并行写入,之后就是到Parquet内部执行阶段。Parquet包含Row Groups,往下是Column Chunk,再往下是Page,文件尾部包含Footer和一些元数据信息。Spark是按行写入的,一次写一行,每行写对应的 column。Parquet编码包括Dictionary Encoding、Run Length Encoding (RLE)、Delta Encoding。读取的主要类是VectorizedParquetRecordReader执行一批读取,调用VectorizedColumnReaders(对应每个column),再调用VectorizedValuesReader(读取一个column中的一段数据),返回由上层应用消费 。

阅读全文