Using sylvan tools for csvz

The first tool I've seen that supports the csvz specification is csvz.exe from Sylvan.Data.CsvZip by Mark Pflug.

I've installed it like this:

dotnet tool install -g Sylvan.Tools.CsvZip --version 0.1.0-b0002


> dotnet tool install -g Sylvan.Tools.CsvZip --version 0.1.0-b0002
mate best match of Sylvan.Tools.CsvZip 0.1.0 was resolved.
You can invoke the tool using the following command: csvz
Tool '' (version '0.1.0') was successfully installed.

I had a folder with some csv files in it (okay, just 1 file)

I ran this command:

csvz --dir .\business\ --file business.csvz

Here's what happened

> csvz --dir .\business\ --file business.csvz
Creating: business.csvz
Processing people.csv:
	Analyzing. 00:00:00.0085868
	Writing.   00:00:00.0238635

It seemed to have worked! There is now a "business.csvz" file.

I copied the resulting .csvz file to .zip:

> copy .\business.csvz .\

... then unzipped it to a new folder called "output":

> 7z x "" -ooutput

7-Zip 19.00 (x86) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21

Scanning the drive for archives:
1 file, 596 bytes (1 KiB)

Extracting archive:
Path =
Type = zip
Physical Size = 596

Everything is Ok

Files: 3
Size:       319
Compressed: 596

Now I'll inspect the output folder and see what we have....

> cd .\output\
> tree /f
Folder PATH listing for volume OS
Volume serial number is 9472-94B6
|		people.csv

Look ^^ It even has a _meta subfolder with columns.csv and tables.csv

It must've interpeted the types.

Let's see if it got it right?

_meta\tables.csv contains:

filename bytes rows columns description published source
people.csv 35 2 2

_meta\columns.csv contains:

filename column ordinal type nullable max-length unique primary-key description units published source
people.csv Name 0 string False 5 True False
people.csv Age 1 int False 4 True False

Awesome. It's guessed the types as string and int. True enough!

I've added it to the list of known tools for csvz. Nice work Mark!


See also