Refactored parquet exporters, dynamic selection of output columns #241
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Added output configuration, that can be defined in the scenario
.json
file, that allows to select which columns are to be included in the raw output fileshost.parquet
,server.parquet
andservice.parquet
.Implementation Notes ⚒️
Columns
The 'default' columns are defined in
DfltHostExportcolumns
,DfltServerExportColumns
andDfltServiceExportColumns
. Any number of additional columns can be definied anywhere (ExportColumn<Exportable>
) and it is going to be deserializable as long as it is loaded by the jvm.Deserialization
Each
(blank space).
ExportColumn
has aRegex
, used for deserialization. If no custom regex is provided, the default one is used. The default regex matches the column name in case-insensitive manner, either with_
as separator (as in the name) or withE.g.:
column name = "cpu_count"
default column regex =
"\\s*(?:cpu_count|cpu count)\\s*"
(case-insensitive)matches = "cpu_count", "cpu count", "CpU_cOuNt" etc.
JSON Schema
Bad Formatting Cases
Exportable
are used, and a warning message is logged.Exportable
are used.Example
host.parquet
server.parquet
not included cause too large
service.parquet
External Dependencies 🍀
Breaking API Changes⚠️