Importing Data
The ingestion menu
Know which tool fits which scenario - questions are almost always phrased as "which approach is best."
- UI upload / Create Table from file - quick, small files, good for demos and one-offs.
COPY INTO- SQL command that loads files from cloud storage into a Delta target. It is idempotent: already-loaded files are skipped, so re-running is safe. Supports schema evolution withmergeSchema.- Auto Loader (
cloudFiles) - incremental, scalable streaming ingestion that discovers new files as they land; the right answer for continuously arriving data in cloud storage. CREATE TABLE AS SELECT/INSERT INTO ... SELECT- ingesting from another table or a JDBC source via a connection.- Lakeflow Connect / partner connectors - managed connectors for SaaS sources such as Salesforce or SQL Server.
Formats and behavior
CSV (inferSchema, header, delimiter), JSON, Parquet, Avro, and Delta are all supported. Streaming reads require Delta or Auto Loader, not raw CSV via COPY INTO semantics - a common trip-up.
Traps
- Choosing
COPY INTOfor a target that must be a non-Delta table - it requires Delta. - Using Auto Loader with a local workspace path; it needs a cloud storage location.
- Forgetting that UI upload has practical file-size limits and is not a production pipeline.
- Re-running a naive
INSERT INTO ... SELECTfrom a landing folder and double-loading data.
Worked example
New CSV files appear hourly in s3://landing/orders/. Correct pattern: create a bronze streaming table with read_files/Auto Loader, set a schema location, enable schema evolution, and let it checkpoint so files are processed exactly once.
Rule of thumb
Files that keep arriving → Auto Loader. Files that arrive in batches and may be replayed → COPY INTO. Handful of files → UI upload.