EddytorDocs & API
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.csv

To 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_content has a ~5MB limit over MCP. For larger files, create the table with a first batch, then insert_rows the rest (or use the CLI insert with a file).
  • Empty strings are not NULL - check your nullability settings.
  • Leading zeros: "001234" becomes 1234 if typed Int64 - keep IDs Utf8.

After import

  1. profile_table - verify row count and null distribution.
  2. Set domains on the candidates infer_schema flagged (Govern with domains).
  3. validate_constraints + validate_domain_values.

Next

On this page