public class CCFTable
extends java.lang.Object
该对象包括: 块的逻辑地址 - 物理地址转换、Meta 字段信息 CCF 表对象使用了全局缓冲结构, 用于减少频繁创建表对象的开销
限定符和类型 | 方法和说明 |
---|---|
edu.sysu.pmglab.container.array.BaseArray<java.util.Map<java.lang.Object,edu.sysu.pmglab.container.array.BaseArray<edu.sysu.pmglab.container.Interval<java.lang.Long>>>> |
buildIndexTree(edu.sysu.pmglab.container.array.BaseArray<java.util.function.Function<IRecord,?>> functions,
java.lang.Iterable<java.lang.String> fields)
构架索引树
一次性构建多个索引树
|
<T> java.util.Map<T,edu.sysu.pmglab.container.array.BaseArray<edu.sysu.pmglab.container.Interval<java.lang.Long>>> |
buildIndexTree(java.util.function.Function<IRecord,T> function)
构架索引树
|
<T> java.util.Map<T,edu.sysu.pmglab.container.array.BaseArray<edu.sysu.pmglab.container.Interval<java.lang.Long>>> |
buildIndexTree(java.util.function.Function<IRecord,T> function,
java.lang.Iterable<java.lang.String> fields)
构架索引树
|
<T> java.util.Map<T,edu.sysu.pmglab.container.array.BaseArray<edu.sysu.pmglab.container.Interval<java.lang.Long>>> |
buildIndexTree(java.lang.String fieldName)
构架索引树
|
static void |
clear()
清除数据表管理器
|
static boolean |
clear(java.lang.Object file)
清除指定的数据表管理器
|
static CCFTable |
concat(java.lang.Iterable<CCFTable> tables,
CCFMeta meta,
java.io.File outputFile)
连接多个具有相同列的数据表, 并输出到指定文件
|
boolean |
containField(java.lang.String fieldName)
查看当前数据表是否包含指定列名的数据
|
static CCFTable |
fastMerge(CCFTable[] tables,
CCFMeta meta,
java.io.File outputFile)
连接多个具有相同行数、列不重叠的数据表, 并输出到指定文件
|
CCFField<?> |
getField(java.lang.String fieldName)
已过时。
|
java.lang.String[] |
getFieldNames()
获取当前数据表包含的列的列名
|
int |
getFieldNum()
获取当前数据表包含的列数
|
FieldType |
getFieldType(java.lang.String fieldName)
获取指定列名的数据类型
|
java.util.Map<java.lang.String,FieldType> |
getFieldTypes()
获取所有列名及其数据类型
|
java.util.Map<java.lang.String,FieldType> |
getFieldTypes(java.lang.Iterable<java.lang.String> fieldNames)
获取指定列的列名及其类型, 传入 null 时, 返回当前数据表的所有列字段信息; 传入其他信息时, 将对列取交集
|
edu.sysu.pmglab.unifyIO.Path |
getFilePath()
获取当前数据表绑定的数据表文件对象
|
CCFMeta |
getMeta()
获得注释信息前缀树
|
long |
getRecordNum()
获取当前数据表包含的记录条目数
|
int |
indexOfField(java.lang.String fieldName)
获取字段的列索引
|
CCFExporter |
instanceExporter(java.lang.Iterable<java.lang.String> fields)
实例化 CCF 导出器
|
CCFReader |
instanceReader()
实例化 CCF 读取器
|
CCFReader |
instanceReader(java.lang.Iterable<java.lang.String> fieldNames)
实例化 CCF 读取器
|
CCFReader |
instanceReader(java.lang.String... fieldNames)
实例化 CCF 读取器
|
boolean |
isOrdered(java.util.Comparator<IRecord> comparator,
java.lang.Iterable<java.lang.String> sortIndexer)
检查文件是否有序
|
static CCFTable |
load(java.lang.Object file)
获取文件管理器
|
static <T> java.util.Map<T,edu.sysu.pmglab.container.array.BaseArray<edu.sysu.pmglab.container.Interval<java.lang.Long>>> |
loadIndexTree(CCFTable indexTable)
从 CCF 数据表中加载索引树表
|
static <T> java.util.Map<T,edu.sysu.pmglab.container.array.BaseArray<edu.sysu.pmglab.container.Interval<java.lang.Long>>> |
loadIndexTree(CCFTable indexTable,
java.util.function.Function<IRecord,java.util.Map.Entry<T,edu.sysu.pmglab.container.Interval<java.lang.Long>>> mappingFunction)
从 CCF 数据表中加载索引树表
|
static <T> java.util.Map<T,edu.sysu.pmglab.container.array.BaseArray<edu.sysu.pmglab.container.Interval<java.lang.Long>>> |
loadIndexTree(edu.sysu.pmglab.unifyIO.Path indexFile)
从文件中加载索引树表
|
static <T> CCFTable |
saveIndexTree(java.util.Map<T,edu.sysu.pmglab.container.array.BaseArray<edu.sysu.pmglab.container.Interval<java.lang.Long>>> indexTree,
FieldType keyType,
java.io.File indexFile,
CCFMeta meta)
保存索引树表
|
CCFTable |
saveTo(java.io.File outputFile)
保存当前数据表到指定的文件
|
java.lang.String |
toString() |
public static void clear()
public static boolean clear(java.lang.Object file) throws java.io.IOException
file
- 文件对象java.io.IOException
- IO 异常真实存在的路径对象
,
文件名
,
文件对象
public static CCFTable load(java.lang.Object file)
file
- 文件对象真实存在的路径对象
,
文件名
,
文件对象
public int getFieldNum()
public long getRecordNum()
public CCFMeta getMeta()
public java.lang.String[] getFieldNames()
public java.util.Map<java.lang.String,FieldType> getFieldTypes()
@Deprecated public CCFField<?> getField(java.lang.String fieldName)
fieldName
- 指定列名public boolean containField(java.lang.String fieldName)
fieldName
- 列名public FieldType getFieldType(java.lang.String fieldName)
fieldName
- 指定列名public int indexOfField(java.lang.String fieldName)
fieldName
- 字段名public edu.sysu.pmglab.unifyIO.Path getFilePath()
public CCFReader instanceReader() throws java.io.IOException
java.io.IOException
- IO 异常public CCFReader instanceReader(java.lang.String... fieldNames) throws java.io.IOException
fieldNames
- 字段名java.io.IOException
- IO 异常public CCFReader instanceReader(java.lang.Iterable<java.lang.String> fieldNames) throws java.io.IOException
fieldNames
- 字段名java.io.IOException
- IO 异常public CCFExporter instanceExporter(java.lang.Iterable<java.lang.String> fields)
fields
- 字段public java.util.Map<java.lang.String,FieldType> getFieldTypes(java.lang.Iterable<java.lang.String> fieldNames)
fieldNames
- 字段名public static CCFTable concat(java.lang.Iterable<CCFTable> tables, CCFMeta meta, java.io.File outputFile) throws java.io.IOException
tables
- 多个数据表对象meta
- 添加的 meta 信息outputFile
- 输出文件对象java.io.IOException
- 文件读取过程中产生的 IO 异常 (包括占用、指针异常、不存在等)public static CCFTable fastMerge(CCFTable[] tables, CCFMeta meta, java.io.File outputFile) throws java.io.IOException
tables
- 多个数据表对象meta
- 添加注释信息outputFile
- 输出文件对象java.io.IOException
- 文件读取过程中产生的 IO 异常 (包括占用、指针异常、不存在等)public CCFTable saveTo(java.io.File outputFile) throws java.io.IOException
outputFile
- 输出文件对象java.io.IOException
- 文件读取过程中产生的 IO 异常 (包括占用、指针异常、不存在等)public java.lang.String toString()
toString
在类中 java.lang.Object
public boolean isOrdered(java.util.Comparator<IRecord> comparator, java.lang.Iterable<java.lang.String> sortIndexer) throws java.io.IOException
comparator
- 比对器sortIndexer
- 索引键java.io.IOException
- IO 异常public <T> java.util.Map<T,edu.sysu.pmglab.container.array.BaseArray<edu.sysu.pmglab.container.Interval<java.lang.Long>>> buildIndexTree(java.lang.String fieldName) throws java.io.IOException
T
- 记录值的类型fieldName
- 索引字段java.io.IOException
- IO 异常public <T> java.util.Map<T,edu.sysu.pmglab.container.array.BaseArray<edu.sysu.pmglab.container.Interval<java.lang.Long>>> buildIndexTree(java.util.function.Function<IRecord,T> function) throws java.io.IOException
T
- 记录值的类型function
- 索引值函数java.io.IOException
- IO 异常public <T> java.util.Map<T,edu.sysu.pmglab.container.array.BaseArray<edu.sysu.pmglab.container.Interval<java.lang.Long>>> buildIndexTree(java.util.function.Function<IRecord,T> function, java.lang.Iterable<java.lang.String> fields) throws java.io.IOException
T
- 记录值的类型function
- 索引值函数fields
- 索引字段java.io.IOException
- IO 异常public edu.sysu.pmglab.container.array.BaseArray<java.util.Map<java.lang.Object,edu.sysu.pmglab.container.array.BaseArray<edu.sysu.pmglab.container.Interval<java.lang.Long>>>> buildIndexTree(edu.sysu.pmglab.container.array.BaseArray<java.util.function.Function<IRecord,?>> functions, java.lang.Iterable<java.lang.String> fields) throws java.io.IOException
functions
- 索引值函数fields
- 索引字段java.io.IOException
- IO 异常public static <T> java.util.Map<T,edu.sysu.pmglab.container.array.BaseArray<edu.sysu.pmglab.container.Interval<java.lang.Long>>> loadIndexTree(edu.sysu.pmglab.unifyIO.Path indexFile) throws java.io.IOException
T
- 索引键类型indexFile
- 索引文件java.io.IOException
- IO 异常public static <T> java.util.Map<T,edu.sysu.pmglab.container.array.BaseArray<edu.sysu.pmglab.container.Interval<java.lang.Long>>> loadIndexTree(CCFTable indexTable) throws java.io.IOException
T
- 索引键类型indexTable
- 索引数据表java.io.IOException
- IO 异常public static <T> java.util.Map<T,edu.sysu.pmglab.container.array.BaseArray<edu.sysu.pmglab.container.Interval<java.lang.Long>>> loadIndexTree(CCFTable indexTable, java.util.function.Function<IRecord,java.util.Map.Entry<T,edu.sysu.pmglab.container.Interval<java.lang.Long>>> mappingFunction) throws java.io.IOException
T
- 索引键类型indexTable
- 索引文件mappingFunction
- 索引映射函数java.io.IOException
- IO 异常public static <T> CCFTable saveIndexTree(java.util.Map<T,edu.sysu.pmglab.container.array.BaseArray<edu.sysu.pmglab.container.Interval<java.lang.Long>>> indexTree, FieldType keyType, java.io.File indexFile, CCFMeta meta) throws java.io.IOException
T
- 索引键类型indexTree
- 索引树keyType
- 索引键类型indexFile
- 输出索引文件meta
- 注入索引表的 meta 信息java.io.IOException
- IO 异常