07 · Tables A→ZF · Load data
Import a CSV
Create a table and load rows from a CSV in one step, after inferring the schema.
import_csv creates a table and inserts the rows in one step. Always
infer the schema first so you fix type
surprises before they land.
Import
{
"table_name": "products",
"location": "abfss://container@account.dfs.core.windows.net/master-data",
"primary_key_column": "product_id",
"csv_content": "product_id,name,category,price\nP001,Widget,Electronics,29.99\n...",
"non_nullable_columns": ["product_id", "name", "category"]
}delimiter auto-detects , ; \t | - set it explicitly only if detection
fails.
For an existing table, load a file with insert:
eddytor insert table eddytor sales orders --file ./orders.csvTo create-and-load in one step, use the MCP import_csv tool, or
create the table then insert.
Rules that bite
Heads up
table_name is bare (products), location is a full
URL, and primary_key_column must be a column that exists in the CSV. If the
import fails (type conflict, duplicate PKs), the table is not created - fix
the data and retry.csv_contenthas a ~5MB limit over MCP. For larger files, create the table with a first batch, theninsert_rowsthe rest (or use the CLIinsertwith a file).- Empty strings are not NULL - check your nullability settings.
- Leading zeros:
"001234"becomes1234if typedInt64- keep IDsUtf8.
After import
profile_table- verify row count and null distribution.- Set domains on the candidates
infer_schemaflagged (Govern with domains). validate_constraints+validate_domain_values.