The 0.8 TsFile format looks like:




Notice that, we have to add a marker to distinguish what kind of structure the next part of data is: 0 is chunk group footer, 1 is chunk header and 2 means no data left.

For more information, you can run tsfile/example/src/main/java/cn/edu/tsinghua/tsfile/TsFileSequenceRead. The class helps to print the file format: e.g.,

`

file length: 1070
file magic head: TsFilev0.8.0
file magic tail: TsFilev0.8.0
Level 1 metadata position: 899
Level 1 metadata size: 899
[Chunk Group]
position: 12
	[Chunk]
	position: 13
	Measurement: sensor_3
		[Page]
 		Page head position: 47
		Page data position: 99
		points in the page: 5
		Uncompressed page data size: 45
			time, value: 2, 50
			time, value: 4, 51
			time, value: 6, 11
			time, value: 7, 21
			time, value: 8, 31
	[Chunk]
	position: 145
	Measurement: sensor_1
		[Page]
 		Page head position: 179
		Page data position: 231
		points in the page: 6
		Uncompressed page data size: 41
			time, value: 1, 1.2
			time, value: 3, 1.4
			time, value: 4, 1.2
			time, value: 6, 7.2
			time, value: 7, 6.2
			time, value: 8, 9.2
	[Chunk]
	position: 273
	Measurement: sensor_2
		[Page]
 		Page head position: 307
		Page data position: 359
		points in the page: 7
		Uncompressed page data size: 46
			time, value: 1, 20
			time, value: 2, 20
			time, value: 3, 21
			time, value: 4, 20
			time, value: 6, 10
			time, value: 7, 20
			time, value: 8, 30
Chunk Group Footer position: 406
device: device_1
[Metadata]
	[Device]File Offset: 431, Device device_1, Number of Chunk Groups 1
		Measurement:sensor_3
		File offset:12
		Measurement:sensor_1
		File offset:144
		Measurement:sensor_2
		File offset:272 

`

  • No labels