Interface Database

All Known Subinterfaces:
DatabaseInternal
All Known Implementing Classes:
DatabaseImpl, ReplayDatabase, WritableReplayDatabase

@ScriptApi public interface Database
This interface presents a view of the data store for the system in both Live, and Historical versions.
  • Field Details

  • Method Details

    • liveTable

      @ScriptApi @FinalDefault default Table liveTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName)
      Fetch a live Table for the specified namespace and table name.
      Parameters:
      namespace - the Namespace in which the table exists
      tableName - the name of the table in the Namespace.
      Returns:
      a new live Table for the specified parameters.
    • liveTable

      @ScriptApi Table liveTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull TableOptions options)
      Fetch a live Table for the specified namespace and table name.
      Parameters:
      namespace - the Namespace in which the table exists
      tableName - the name of the table in the Namespace.
      options - a TableOptions to set table options.
      Returns:
      a new live Table for the specified parameters.
    • livePartitionedTable

      @ScriptApi @FinalDefault default PartitionedTable livePartitionedTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName)
      Retrieve the specified live table as a PartitionedTable from the Database. The partitioned table's key columns will be its column and internal partitions.
      Parameters:
      namespace - the Namespace in which the table exists
      tableName - the name of the table in the Namespace.
      Returns:
      a new PartitionedTable for the specified table
    • livePartitionedTable

      @ScriptApi PartitionedTable livePartitionedTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull TableOptions options)
      Retrieve the specified live table as a PartitionedTable from the Database. The partitioned table's key columns will be its column and internal partitions.
      Parameters:
      namespace - the Namespace in which the table exists
      tableName - the name of the table in the Namespace.
      options - a TableOptions to set table options.
      Returns:
      a new PartitionedTable for the specified table
    • historicalTable

      @ScriptApi @FinalDefault default Table historicalTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName)
      Fetch a static historical Table from the database.
      Parameters:
      namespace - the Namespace in which the table exists
      tableName - the name of the table in the Namespace.
      Returns:
      a new static Table for the specified parameters.
    • historicalTable

      @ScriptApi Table historicalTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull TableOptions options)
      Fetch a static historical Table from the database.
      Parameters:
      namespace - the Namespace in which the table exists
      tableName - the name of the table in the Namespace.
      options - a TableOptions to set table options.
      Returns:
      a new static Table for the specified parameters.
    • historicalPartitionedTable

      @ScriptApi @FinalDefault default PartitionedTable historicalPartitionedTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName)
      Retrieve the specified historical table as a PartitionedTable from the Database. The partitioned table's key columns will be its column and internal partitions.
      Parameters:
      namespace - the Namespace in which the table exists
      tableName - the name of the table in the Namespace.
      Returns:
      a new PartitionedTable for the specified table
    • historicalPartitionedTable

      @ScriptApi PartitionedTable historicalPartitionedTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName, @NotNull @NotNull TableOptions options)
      Retrieve the specified historical table as a PartitionedTable from the Database. The partitioned table's key columns will be its column and internal partitions.
      Parameters:
      namespace - the Namespace in which the table exists
      tableName - the name of the table in the Namespace.
      options - a TableOptions to set table options.
      Returns:
      a new PartitionedTable for the specified table
    • getTableDefinition

      @ScriptApi TableDefinition getTableDefinition(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName)
      Fetch a TableDefinition from the database.
      Parameters:
      namespace - the Namespace in which the table exists
      tableName - the name of the table in the Namespace.
      Returns:
      the TableDefinition for the specified parameters.
    • getTableDefinitionTable

      @ScriptApi Table getTableDefinitionTable(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName)
      Fetch a table's definition table from the database.
      Parameters:
      namespace - the Namespace in which the table exists
      tableName - the name of the table in the Namespace.
      Returns:
      a Table of the column definitions for the specified parameters.
    • getNamespaces

      @ScriptApi Collection<String> getNamespaces()
      Get the available namespaces.
      Returns:
      the list of namespaces
    • getTableNames

      @ScriptApi Collection<String> getTableNames(String namespace)
      Get the tables within a namespace
      Parameters:
      namespace - the namespace to interrogate
      Returns:
      the list of tables within namespace
    • getCatalogTable

      @ScriptApi Table getCatalogTable()
      Retrieve a table containing the tables that exist in this database.

      The returned table has a column for "Namespace", "Tablename" and "NamespaceSet".

      Returns:
      a table containing the tables that exist in this database.
    • clearLocationCache

      @ScriptApi void clearLocationCache()
      Clear the location cache for all tables. Use this method when some data has been replaced for a table to refresh the location cache and read the replaced data.

      Subsequent calls to historicalTable(String, String), liveTable(String, String) and their variants for all tables will repeat location discovery, which can have significant negative performance consequences.

      Note that you may also disable caching entirely using useLocationCaches(boolean)

    • clearLocationCache

      @ScriptApi void clearLocationCache(@NotNull @NotNull String namespace, @NotNull @NotNull String tableName)
      Clear the location cache for the specified table. Use this method when some data has been replaced for a table to refresh the location cache and read the replaced data.

      Subsequent calls to historicalTable(String, String), liveTable(String, String) and their variants for this table will repeat location discovery, which can have significant negative performance consequences

      Note that you may also disable caching entirely using useLocationCaches(boolean)

      Parameters:
      namespace - namespace of table to clear cache
      tableName - table name of table to clear cache
    • useLocationCaches

      @ScriptApi void useLocationCaches(boolean useCaching)
      Set whether the database should cache the result of table location discovery and re-use them. This defaults to true
      Parameters:
      useCaching - if location caches should be used.