Benchling’s Warehouse Tables come in 2 types:

  • Suffixed with $raw is a raw table (ex. “biotechtx.entity$raw")

  • Not suffixed with $raw is a default view or user view of a table (ex. “biotechtx.entity")


The raw table contains all of the rows and columns.

The default view contains a subset of those rows and columns. It filters out information that the typical user wouldn’t want to see. It filters out the system metadata columns _pkey and _sync_key. It typically filters out archived or unreviewed rows. For example:

  • The default view of result tables only contains result rows that are not archived, whose entries are reviewed, and are not invalid (via the Cell-Level Validation feature). Note the default view is a Postgres view over the raw table.

  • The default view of registry_entity only contains registered entity rows that are not archived.


Benchling recommends using raw tables for following cases:

  • If you want an un-filtered view like result tables containing unreviewed data.

  • If you want to view not only un-archived but also archived entities.

  • If you want to filter by Registry Validation feature. Use the validation_status = 'PASSED' filter in this case.

  • As the filter-logic in the default views vary from table to table, it is recommended to query $raw tables and explicitly apply filters as needed.

  • When results uploaded via the API are not associated with a Notebook Entry, these results cannot be reviewed per Benchling's Notebook Entry review process. Therefore, these API-created results will only live in the $raw tables in Benchling's data warehouse.

Did this answer your question?