Publish / file · All operations

Write a columnar file

Write Parquet, ORC, Avro, Iceberg, Delta.

Status

In arcform

Not built yet

arcform does not do this yet. Its place on the roadmap

arcform has parquet_export for Parquet files.

Shape of the result
the table sent out, with nothing new to look at
Level
one clause of SQL

Variants

Write another columnar format

Write a columnar format outside the common ones, such as Vortex.

What other tools call it

Meridian's classification; an independent blind rating agreed on 86.2% of 312 rows (exact class, version 2).

Apache DataFusion (3)
Apache Hop (4)
Apache NiFi (3)
AWS Glue (6)
Azure Data Factory (5)
Duckle (6)
  • Apache Icebergread 2026-09-25

    write an Iceberg table

  • Avroread 2026-09-25

    write an Avro container file

  • Checkpointread 2026-09-25

    pass rows through and write a Parquet snapshot to a path

  • Delta Lakeread 2026-09-25

    append to a local Delta Lake table through an attached delta catalog

  • Parquetread 2026-09-25

    write Parquet with COPY, optional partitioning and compression

  • Vortexread 2026-09-25

    write a Vortex columnar file, bridged through Parquet

EasyMorph (1)
Pentaho Data Integration (3)
  • Avro Outputread 2026-09-27

    Serialise rows as binary or JSON Avro and write them to a file

  • ORC Outputread 2026-09-27

    Write rows to a file in ORC format

  • Parquet Outputread 2026-09-27

    Map fields and write rows to Parquet files

Polars (10)
Power Query M (1)
  • Arrow.ToBinaryread 2026-09-27

    Write the rows of a table as an Apache Arrow IPC stream

Talend (3)
VisiData (3)

Background

In a column-oriented format, each column of a table is stored one after the other, so values of the same column sit close together.[1] Examples of column-oriented formats include Apache ORC, Apache Parquet and Apache Arrow.[1] Table formats such as Apache Iceberg, Delta Lake and Apache Hudi build a metadata layer on top of Parquet files, for features such as time-travel queries.[2]

When to use it

Row-oriented formats are more commonly used in online transaction processing (OLTP), and column-oriented formats in online analytical processing (OLAP).[1] In Apache Parquet, queries that fetch specific column values need not read the entire row.[2] Reach for a columnar file when the data will be read many times by analytical queries, and keep a row-oriented format for data that arrives and changes a row at a time. (Meridian's view)

DuckDB's COPY ... TO statement exports data from DuckDB to an external file, Parquet files included.[3] In DuckDB, COPY ... TO overwrites the destination file if it already exists, without raising an error.[3] By default, DuckDB writes to a temporary file first and replaces an existing destination only once the write completes successfully, so an interrupted write does not corrupt the previous file.[3] In DuckDB, reading from and writing to the same file in a single statement is not guaranteed to be safe.[3] Treat a columnar file as something written whole and replaced whole, and write it to a path that no query in the same statement reads. (Meridian's view)

The method

Tabular data is two-dimensional, but computer systems represent data in a linear memory model, so a table has to be mapped into a one-dimensional space.[1] Data orientation is the decision taken in mapping a table into linear memory, and the two prominent mappings are row-oriented and column-oriented.[1] A column-oriented layout benefits from a smaller compressed size, as a result of higher homogeneity within a column than within multiple rows.[1] A column-oriented layout can also use dedicated encodings, such as a bitmap for a Boolean column or run-length encoding of a column.[1]

Parquet is widely used as the underlying file format in cloud-based data lake architectures.[2] In data lakes built on Iceberg, Delta Lake or Hudi, Parquet files serve as the immutable storage layer while the table formats manage data versioning and transactional integrity.[2]

Compared with the alternatives

Predominant examples of row-oriented formats include comma-separated values (CSV) files and the formats used in most relational databases.[1] Because row and column orientations represent the same data, a row-oriented dataset can be converted to a column-oriented one and back at the expense of compute.[1] Advanced query engines often convert between orientations during execution: an Apache Spark query may read Parquet, load it into Spark's row-oriented in-memory format and convert it to Arrow for a specific computation.[1] A CSV export suits a person who will open the file in a spreadsheet; a columnar file suits the next query. (Meridian's view)

Sources

  1. [1]Data orientation - Wikipediasecondary source
  2. [2]Apache Parquet - Wikipediasecondary source
  3. [3]COPY Statement – DuckDBdocumentation

Used in

15 Protocols use this operation: