What namespace do system tables created by a PQ (Persistent Query) get put in?

What namespace is a new PQ created in? Or, what namespace do system tables created by a PQ get put in?

In short:

  • PQ itself: No namespace (it's a query execution mechanism).
  • Enterprise: You specify the namespace and table name when saving data (merge queries or user tables).
  • Community: You specify the file path/location when exporting.

This question touches on some important concepts in Deephaven:

1. Persistent Queries and Namespaces

Persistent Queries do not have a namespace. However, when a PQ creates or modifies system table(s), they are stored according to the rules below.

2. Deephaven Enterprise - Table Storage

In Deephaven Enterprise, you control where tables are stored by specifying the namespace and table name when saving data:

For merge queries: Configure the output location in the merge settings by specifying:

  • Namespace: The target namespace for merged data.
  • Table: The target table name.

For user tables: Use the Database APIs to save tables in the format Namespace.TableName. You can choose between:

  • System namespaces: Managed by administrators through structured processes.
  • User namespaces: Managed directly by users with appropriate privileges.

Example of referencing a saved table:

3. Deephaven Community - Table Storage Location

In Deephaven Community, you specify the location where tables are stored when using data export methods:

  • Parquet files: Use parquet.write, parquet.write_partitioned, or parquet.batch_write with a specified path parameter (local filesystem or S3).
  • CSV files: Use write_csv with a specified destination path.
  • Other formats: Various export functions allow you to specify the output location.

Example: