8.2.2 Log File: Feather Format

Feather (Apache Arrow) is a format available for storing logged data into a file.

Feather data is ZSTD compressed and is directly consumable by several external tools and scripting languages such as Python (see example below.) For more information see arrow.apache.org/ and, for example, arrow.apache.org/cookbook/py/io.html#reading-a-feather-file for Python examples.

Example 2: Dump of a Feather file using feather-check.py.

c:\temp>python feather-check.py DvrtProtocol-1.feather
Length: 2
Reading DvrtProtocol-1.feather as pyarrow table
pyarrow.Table
timestamp: double not null
demo_uint8: uint8 not null
demo_float: float not null
----
timestamp: [[4458.8244819,4458.9324957,4459.0405149,4459.1484745,4459.256488,...,4482.0444293,4482.1524266,4482.260458,4482.3684368,4482.4764697]]
demo_uint8: [[151,161,172,182,192,...,9,19,29,39,49]]
demo_float: [[1617665.8,1617678.2,1617692,1617704.5,1617717,...,1620368.2,1620380.8,1620393.2,1620405.8,1620418.2]]
Total number of rows: 219

feather-check.py

import sys
import pyarrow.feather as pf

print("Length: " + str(len(sys.argv)))

if (len(sys.argv) < 2):
    print("Usage: feather-check.py <file_name>")
    sys.exit(1)

fileName = sys.argv[1]
print("Reading " + fileName + " as pyarrow table")

table = pf.read_table(fileName)

print(table)
print("Total number of rows: " + str(len(table)))

Timestamps describe the time since the data visualizer backend process was started, in seconds. They are represented as 64-bit floating point data in the Feather format.