This documentation page assumes that you already have a SeekTable account. You can create free account by signing up
Create pivot table or chart by CSV
CSV file is a simplest data source in SeekTable: it is enough to click on Upload Data, choose a local file,
and wait until file is uploaded. That's all.
All parameters are detemined automatically:
- CSV separator: comma, semicolon, pipe or tab.
- File encoding: UTF-16, UTF-8, Windows-1252, Windows-1251/KOI8-R (Cyrillic), Windows-1253 (Greek), ISO-2022-JP, ISO-2022-KR, ISO-2022-CN and others.
- First row should contain column names. If your CSV file doesn't contain headers row you have to add it.
- Data types: string, number, date. Other types may be parsed with custom expressions.
- For number columns sum/average/min/max measures are suggested.
- For date columns 3 derived dimensions (year, month, day) are configured automatically.
- Columns with many unique values (like IDs) may be excluded from dimensions. You can add them explicitely if needed.
CSV file may be compressed with zip or gzip, and this is only option if you want to upload large CSV file that is greater than upload limit (50Mb).
Uncompressed CSV size might be up to 500Mb; SeekTable works fine with files of this size and pivot table generation should not take more than 5-10 seconds.
It is possible to define special expressions for custom handling of CSV values (parse timespans, apply replace rules etc).
Refresh CSV data
In some cases you might need to refresh saved pivot table reports by uploading newer version of the dataset.
This is possible in one of the following ways:
- If CSV file name is the same as previously uploaded file: just upload new file and choose Refresh Existing Cube in the confirmation dialog.
Determine ID of CSV-based cube you want to refresh; it is present in the address bar, for example:
In this case cube ID is
Rename new CSV file and use cube ID as file name. For example:
feb3828c57474791a5ee92b83d4195e0.zip (if CSV file is zipped)
- Upload renamed file in a usual way (with Upload Data button).
- Instead of creating new cube SeekTable will replace old CSV file with a new version. All saved reports will be refreshed.
Note: data refresh is possible only if new CSV file has all columns present in the old version of CSV file (with the same names); new columns are OK.
Calculated columns row-level expressions
It is possible to define expression-based (calculated) dimensions that are evaluated before aggregation step (on row-level).
For example, if you have date column (say, "Some Date") it is possible to calculate quarter or day-of-week in the following way:
- add new dimension with Type=
- fill Name with some unique value: say, "Some Date (Quarter)" or "Some Date (DayOfWeek)"
- add one Parameter which should be an expression (syntax is the same as for calculated members):
Date.Quarter(Column["Some Date"]) (for quarter)
Date.DayOfWeek(Column["Some Date"]) (for day-of-week)
Date.Week(Column["Some Date"]) (for week number)
Column is a special variable that provides access to the context CSV row values; you can use column name directly
if it doesn't contain spaces or special symbols - for example,
SomeDate. More details about expression syntax you can found
Analyze very large CSV file
In case if you want to create a pivot table by CSV file that exceeds upload limit (even zipped) you still can do that in one of the following ways:
Download trial version of PivotData Microservice,
run it on your computer and configure for your local CSV file(s) as data source.
Pivot table generation by 1GB file might take up to 10-15 seconds. As alternative,
you can convert CSV file to SQLite database file
and configure it as data source for the microservice (you can add some indexes to significantly improve reports generation speed).
Import CSV file into SQL database, and then use this DB as a data source in SeekTable.
Hint: ClickHouse engine is very fast, and it can provide access to many-GB CSV file as database table (without import) with table engine = FILE.