CSV type issues troubleshooting¶
Common issues and solutions for CSV type problems in ClickHouse and Tinybird.
Common errors¶
CANNOT_PARSE_TEXT¶
Error: CANNOT_PARSE_TEXT: Cannot parse CSV
Cause: Malformed CSV data or wrong delimiter
Solution: Check CSV format and delimiter
-- Valid CSV id,user_id,value,timestamp 123,456,10.5,2023-01-01 12:00:00 -- Invalid CSV (wrong delimiter) id;user_id;value;timestamp 123;456;10.5;2023-01-01 12:00:00
TYPE_MISMATCH¶
Error: TYPE_MISMATCH: Cannot convert String to UInt32
Cause: CSV column contains non-numeric data in numeric column
Solution: Use safe conversion functions
-- Use safe conversion SELECT toUInt32OrNull(numeric_column) as safe_number FROM events
CSV format issues¶
Missing headers¶
Issue: CSV file without column headers
Solution: Specify column names in schema
-- Specify column names SCHEMA > id UInt32, user_id String, value Float64, timestamp DateTime
Inconsistent delimiters¶
Issue: Mixed delimiters in CSV file
Solution: Use consistent delimiter or handle in schema
-- Handle different delimiters -- Use tab-separated values FORMAT TabSeparated
Quote handling¶
Issue: CSV fields with quotes causing parsing issues
Solution: Handle quotes properly
-- Use proper quote handling FORMAT CSVWithNames SETTINGS format_csv_allow_single_quotes = 1
Data type problems¶
Mixed data types in columns¶
Issue: Same column has different data types
Solution: Use string type and convert later
-- Use string for mixed types CREATE TABLE events ( id UInt32, mixed_column String, -- Handle mixed types as string value Float64 )
Date format issues¶
Issue: CSV dates in unexpected format
Solution: Parse dates explicitly
-- Parse dates with specific format SELECT toDateTime(date_string, 'YYYY-MM-DD HH:MM:SS') as parsed_date FROM events
Best practices¶
- Validate CSV format - Check delimiter and quote handling
- Use consistent types - Keep column types consistent
- Handle mixed data - Use string type for mixed data
- Parse dates explicitly - Don't rely on automatic date parsing
- Use schema hints - Specify expected types in schema