Class UnimplementedDatabase
- All Implemented Interfaces:
Database
DatabaseInternal
and the enterprise version
. Everything will return an UnsupportedOperationException
.-
Nested Class Summary
Nested classes/interfaces inherited from interface com.illumon.iris.db.tables.databases.Database
Database.LogHandle, Database.StorageFormat
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addPartitionedTableDefinition
(String namespace, String tableName, TableDefinition prototypeDefinition) Adds a table definition for a partitioned table.void
addPartitionedTableDefinition
(String namespace, String tableName, String partitioningColumnName, TableDefinition prototypeDefinition) Adds a table definition for a partitioned table.void
addPartitionedTableDefinitionIfAbsent
(String namespace, String tableName, String partitioningColumnName, TableDefinition prototypeDefinition) Adds a table definition for a partitioned table, if the table definition is absent.void
addPartitionedTableDefinitionIfAbsent
(String namespace, String tableName, String partitioningColumnName, TableDefinition prototypeDefinition, boolean checkPartitioningColumn) Adds a table definition for a partitioned table, if the table definition is absent.void
addTable
(String namespace, String tableName, Table table, Database.StorageFormat storageFormat) Adds a non-partitioned table by name to the specified namespace.void
addTableDefinition
(String namespace, String tableName, TableDefinition tableDefinition) Adds a table definition to the specified namespace.void
addTablePartition
(String namespace, String tableName, String columnPartitionValue, Table data, Database.StorageFormat storageFormat) Adds a single table partition (e.g.void
addTablePartition
(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue, Table data, Database.StorageFormat storageFormat) Adds a single table partition (e.g.void
addTablePartitionAndDefinition
(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table data) Adds a table definition and data for a partitioned user table location.void
addTablePartitionAndDefinition
(String namespace, String tableName, String partitioningColumnName, String internalPartitionValue, String columnPartitionValue, Table data) Adds a table definition and data for a partitioned table.void
appendCentral
(String namespace, String tableName, Table table, boolean flush) Append to a table via a centralized table appender.void
appendCentral
(String namespace, String tableName, String columnPartitionValue, Table table, boolean flush) Append to a table via a centralized table appender.void
appendTable
(String namespace, String tableName, Table table) Appends to a non-partitioned table, or adds the table if it is not present.void
appendTablePartition
(String namespace, String tableName, String columnPartitionValue, Table data) Adds or appends to a single table location (e.g.void
appendTablePartition
(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue, Table data) Adds or appends to a single table location (e.g.void
closeAndDeleteCentral
(String namespace, String tableName) Close all logger connections to the centralized logging for the specified table, and then atomically delete all centrally logged table data for this namespace and table name.void
closeAndDeleteCentral
(String namespace, String tableName, String columnPartitionValue) Close all logger connections to the centralized logging for the specified table, and then atomically delete all centrally logged table data for this namespace and table name, restricted to the column partition value if provided.void
deleteMatchingTables
(String namespace, String tableNameRegex) Delete all files related to the set of tables whose names match the supplied regular expression.void
deleteNamespace
(String namespace) Delete all files related to the specified namespace.void
deleteTables
(String namespace, String... tableNames) Delete all files related to a set of tables.<T> T
executeQuery
(RemoteQuery<T> remoteQuery, Class<?>... additionalClasses) Executes a DB query.void
gc()
Invoke the garbage collector for this database.Gets a table containing information on all tables in the DB.Gets a client hostname.getColumnPartitionTableWriter
(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, TableDefinition tableDefinition, boolean append) Gets a table writer for a partitioned table.Get an error log for the DB.getIntradayPartitions
(String namespace, String tableName) Get a list of all internal partition values available for the specified intraday table.getIntradayPartitionsAsTable
(String namespace, String tableName) Get all internal partition values available for the specified intraday table, returned as table.getIntradayTableV2
(String namespace, String tableName, boolean live) Retrieves an intraday table by namespace and name.getIntradayTableV2
(String namespace, String tableName, Set<String> internalPartitionValues, boolean live) Retrieves the specified internal partitions of the specified intraday table.getLastByTable
(String namespace, String tableName) Retrieves an intraday last-by table by namespace and name.Retrieves all namespace names from the database.Gets the unique processInfoId of the worker.getReplayer
(DBDateTime timeStart, DBDateTime timeEnd) Creates a data replayer.getReplayer
(DBDateTime timeStart, DBDateTime timeEnd, long interval) Creates a data replayer.Gets the server hostname.Retrieves system namespace names from the database.getTableDefinition
(String namespace, String tableName) Retrieves a table definition by namespace and name, generally from the schema service.getTableNames
(String namespace) Gets all table names from the specified namespace.getTableV2
(String namespace, String tableName) Retrieves a table by namespace and name.getTableWriter
(String namespace, String tableName, TableDefinition tableDefinition, boolean append) Gets a table writer for an unpartitioned table.Retrieves user namespace names from the database.Gets the worker name.boolean
hasImportedData
(String namespace, String tableName, String columnPartitionValue) Determines if the historical table's column partition is present in the DB.boolean
hasIntradayData
(String namespace, String tableName, String columnPartitionValue) Determines if the intraday table's column partition is present in the DB.boolean
hasIntradayTable
(String namespace, String tableName) Determines if the table is present in the DB and currently has intraday data.boolean
hasNamespace
(String namespace) Determines if the namespace is present in the DB.boolean
Determines if the table is defined in the DB.void
importClass
(Class classToImport) Imports a class for use in a query.void
importStatic
(Class classToImport) Imports the static methods from a class for use in a query.logPartitionTableIncremental
(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, boolean append) Writes all changes in a table to a centrally managed table.logPartitionTableIncremental
(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, ReplayerInterface replayer, boolean append) Writes all changes in a table to a centrally managed table.logPartitionTableSnapshot
(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, long logIntervalMillis, boolean append) Snapshots a table at a regular interval and writes the snapshot to a centrally managed table.logPartitionTableSnapshot
(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, long logIntervalMillis, ReplayerInterface replayer, boolean append) Snapshots a table at a regular interval and writes the snapshot to a centrally managed table.logPartitionTableSnapshot
(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, String logInterval, boolean append) Snapshots a table at a regular interval and writes the snapshot to a centrally managed table.logPartitionTableSnapshot
(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, String logInterval, ReplayerInterface replayer, boolean append) Snapshots a table at a regular interval and writes the snapshot to a centrally managed table.makeRemote
(Table value) Make a copy of a local table on a remote server.Convenience method forDatabase.makeRemote(Table)
.
Make a copy of a local table on a remote server.void
Reload any internally-cached data.void
removeTable
(String namespace, String tableName) Removes a table.void
removeTableDefinition
(String namespace, String tableName) Removes a table definition.void
removeTablePartition
(String namespace, String tableName, String columnPartitionValue) Removes a single table location (e.g.void
removeTablePartition
(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue) Removes a single table location (e.g.void
replaceTable
(String namespace, String tableName, Table table, Database.StorageFormat storageFormat) Replaces a non-partitioned table with a new table, or adds the table, if it is not already present.void
replaceTableDefinition
(String namespace, String tableName, TableDefinition tableDefinition) Replaces a user table definition.void
replaceTablePartition
(String namespace, String tableName, String columnPartitionValue, Table data, Database.StorageFormat storageFormat) Removes and re-adds a single table location (e.g.void
replaceTablePartition
(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue, Table data, Database.StorageFormat storageFormat) Replaces a single table location (e.g.int
setWatchdogMillis
(int millis) Sets monitoring of delays in the LiveTableMonitor refresh loop.void
setWatchdogTimeoutProcedure
(LongConsumer watchdogTimeoutProcedure) Set the watchdog timeout procedure.void
shutdown()
Shuts this database down.void
startup()
Starts this database up.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.illumon.iris.db.tables.databases.Database
addColumnPartitionAndDefinition, addColumnPartitionAndDefinition, addTable, addTablePartition, addTablePartition, getIntradayTable, getIntradayTable, getIntradayTable, getIntradayTable, getIntradayTable, getIntradayTable, getIntradayTableV2, getIntradayTableV2, getIntradayTableV2, getIntradayTableV2, getReplayer, getReplayer, getReplayer, getTable, getUserContext, i, i, i, i, i, i, i2, i2, i2, i2, i2, i2, replaceTable, replaceTablePartition, replaceTablePartition, rm, t, t2, timeTable, timeTable, timeTable, timeTable, timeTable, timeTable, timeTable, timeTable, timeTable, timeTable, timeTable, timeTable
-
Constructor Details
-
UnimplementedDatabase
public UnimplementedDatabase()
-
-
Method Details
-
getWorkerName
Description copied from interface:Database
Gets the worker name.- Specified by:
getWorkerName
in interfaceDatabase
- Returns:
- worker name
-
getProcessInfoId
Description copied from interface:Database
Gets the unique processInfoId of the worker.- Specified by:
getProcessInfoId
in interfaceDatabase
- Returns:
- process info id
-
getClientHost
Description copied from interface:Database
Gets a client hostname.- Specified by:
getClientHost
in interfaceDatabase
- Returns:
- client hostname
-
getServerHost
Description copied from interface:Database
Gets the server hostname.- Specified by:
getServerHost
in interfaceDatabase
- Returns:
- server hostname.
-
startup
public void startup()Description copied from interface:Database
Starts this database up. -
shutdown
public void shutdown()Description copied from interface:Database
Shuts this database down. -
reloadData
public void reloadData()Description copied from interface:Database
Reload any internally-cached data.- Specified by:
reloadData
in interfaceDatabase
-
gc
public void gc()Description copied from interface:Database
Invoke the garbage collector for this database. -
getErrorLog
Description copied from interface:Database
Get an error log for the DB. This is a real-time table.- Specified by:
getErrorLog
in interfaceDatabase
- Returns:
- error log
- Throws:
Exception
- problems retrieving the error log.
-
setWatchdogMillis
Description copied from interface:Database
Sets monitoring of delays in the LiveTableMonitor refresh loop. If the LiveTableMonitor refresh loop takes longer than the specified amount of time, the watchdog timeout procedure is executed. The watchdog timeout procedure is specified by callingDatabase.setWatchdogTimeoutProcedure(LongConsumer)
.- Specified by:
setWatchdogMillis
in interfaceDatabase
- Parameters:
millis
- if LiveTableMonitor refresh loop takes longer than this amount of time, the watchdog timeout procedure will be called.- Returns:
- the new value of the watchdog timer, in ms
- Throws:
IOException
- problems setting the monitor interval
-
setWatchdogTimeoutProcedure
Description copied from interface:Database
Set the watchdog timeout procedure. If LiveTableMonitor refresh loop takes longer than the amount of time specified viaDatabase.setWatchdogMillis(int)
, the timeout procedure is called.- Specified by:
setWatchdogTimeoutProcedure
in interfaceDatabase
- Parameters:
watchdogTimeoutProcedure
- the procedure called when the LiveTableMonitor refresh loop takes longer than watchdogMillis.- Throws:
IOException
-
executeQuery
public <T> T executeQuery(RemoteQuery<T> remoteQuery, Class<?>... additionalClasses) throws IOException Description copied from interface:Database
Executes a DB query.- Specified by:
executeQuery
in interfaceDatabase
- Type Parameters:
T
- return type- Parameters:
remoteQuery
- query to executeadditionalClasses
- additional classes to use during the query- Returns:
- result of the query (must be serializable)
- Throws:
IOException
- problems executing the query or transmitting results
-
importClass
Description copied from interface:Database
Imports a class for use in a query. For example:db.importClass(X.class) t=db.t(namespace,tablename).where("X.func(A)")
- Specified by:
importClass
in interfaceDatabase
- Parameters:
classToImport
- the class
-
importStatic
Description copied from interface:Database
Imports the static methods from a class for use in a query. For example:db.importStaticClass(X.class) t=db.t(namespace,tablename).where("staticFunc(A)")
where
staticFunc
is a static function ofX
.- Specified by:
importStatic
in interfaceDatabase
- Parameters:
classToImport
- The class
-
mr
Description copied from interface:Database
Convenience method forDatabase.makeRemote(Table)
.
Make a copy of a local table on a remote server. -
makeRemote
Description copied from interface:Database
Make a copy of a local table on a remote server.- Specified by:
makeRemote
in interfaceDatabase
- Parameters:
value
- local table- Returns:
- remote table.
-
getReplayer
Description copied from interface:Database
Creates a data replayer.- Specified by:
getReplayer
in interfaceDatabase
- Parameters:
timeStart
- replay start timetimeEnd
- replay end time- Returns:
- replayer
- Throws:
IOException
- problems creating the replayer
-
getReplayer
public ReplayerInterface getReplayer(DBDateTime timeStart, DBDateTime timeEnd, long interval) throws Exception Description copied from interface:Database
Creates a data replayer.- Specified by:
getReplayer
in interfaceDatabase
- Parameters:
timeStart
- replay start timetimeEnd
- replay end timeinterval
- replay step size- Returns:
- replayer
- Throws:
IOException
- problems creating the replayerException
-
getSystemNamespaces
Description copied from interface:Database
Retrieves system namespace names from the database.- Specified by:
getSystemNamespaces
in interfaceDatabase
- Returns:
- The list of namespace names
-
getUserNamespaces
Description copied from interface:Database
Retrieves user namespace names from the database.- Specified by:
getUserNamespaces
in interfaceDatabase
- Returns:
- The list of namespace names
-
getNamespaces
Description copied from interface:Database
Retrieves all namespace names from the database.- Specified by:
getNamespaces
in interfaceDatabase
- Returns:
- The list of namespace names
-
hasNamespace
Description copied from interface:Database
Determines if the namespace is present in the DB.- Specified by:
hasNamespace
in interfaceDatabase
- Parameters:
namespace
- namespace- Returns:
- true if the namespace exists; false otherwise.
-
getCatalog
Description copied from interface:Database
Gets a table containing information on all tables in the DB.- Specified by:
getCatalog
in interfaceDatabase
- Returns:
- table containing information on all tables in the DB
-
getTableNames
Description copied from interface:Database
Gets all table names from the specified namespace.- Specified by:
getTableNames
in interfaceDatabase
- Parameters:
namespace
- The namespace to list the contents of- Returns:
- The list of table names
-
hasTable
Description copied from interface:Database
Determines if the table is defined in the DB. -
hasIntradayTable
Description copied from interface:Database
Determines if the table is present in the DB and currently has intraday data.- Specified by:
hasIntradayTable
in interfaceDatabase
- Parameters:
namespace
- namespacetableName
- table name- Returns:
- true if the table exists and has intraday data; false otherwise.
-
getTableDefinition
Description copied from interface:Database
Retrieves a table definition by namespace and name, generally from the schema service.- Specified by:
getTableDefinition
in interfaceDatabase
- Parameters:
namespace
- The namespace of the definition to retrievetableName
- The table name of the definition to retrieve- Returns:
- The table definition retrieved, null if not found
-
getIntradayPartitions
Description copied from interface:Database
Get a list of all internal partition values available for the specified intraday table.- Specified by:
getIntradayPartitions
in interfaceDatabase
- Parameters:
namespace
- The namespace of the tabletableName
- The table name to examine in the intraday data space- Returns:
- A list of internal partition values for top-level partitioning of the intraday table. Typically represents one partition per source.
-
getIntradayPartitionsAsTable
Description copied from interface:Database
Get all internal partition values available for the specified intraday table, returned as table.- Specified by:
getIntradayPartitionsAsTable
in interfaceDatabase
- Parameters:
namespace
- The namespace of the tabletableName
- The table name to examine in the intraday data space- Returns:
- A table containing the internal partition values for top-level partitioning of the intraday table. Typically represents one partition per source.
-
hasImportedData
Description copied from interface:Database
Determines if the historical table's column partition is present in the DB.- Specified by:
hasImportedData
in interfaceDatabase
- Parameters:
namespace
- namespacetableName
- table namecolumnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).- Returns:
- true if the table's column partition exists; false otherwise.
-
hasIntradayData
Description copied from interface:Database
Determines if the intraday table's column partition is present in the DB.- Specified by:
hasIntradayData
in interfaceDatabase
- Parameters:
namespace
- namespacetableName
- table namecolumnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).- Returns:
- true if the intraday table's column partition exists; false otherwise.
-
getSchemaService
Description copied from interface:Database
- Specified by:
getSchemaService
in interfaceDatabase
- Returns:
- The
SchemaService
that thisDatabase
was created with.
-
getTableV2
Description copied from interface:Database
Retrieves a table by namespace and name. Throws exceptions for unknown tables.- Specified by:
getTableV2
in interfaceDatabase
- Parameters:
namespace
- namespace of the tabletableName
- name of the table- Returns:
- table in "v2" format
-
getIntradayTableV2
Description copied from interface:Database
Retrieves an intraday table by namespace and name. Throws exceptions for unknown tables.- Specified by:
getIntradayTableV2
in interfaceDatabase
- Parameters:
namespace
- namespace of the tabletableName
- name of the tablelive
- true if the table should be live/updating; false otherwise- Returns:
- intraday table
-
getIntradayTableV2
public Table getIntradayTableV2(String namespace, String tableName, Set<String> internalPartitionValues, boolean live) Description copied from interface:Database
Retrieves the specified internal partitions of the specified intraday table. The result may contain locations for multiple column partition values, and so a subsequent filter (e.g. on "Date") will often be desired.Throws exceptions for unknown tables.
- Specified by:
getIntradayTableV2
in interfaceDatabase
- Parameters:
namespace
- namespace of the tabletableName
- name of the tableinternalPartitionValues
- locations will be restricted to these internal partition valueslive
- true if the table should be live/updating; false otherwise- Returns:
- single partition intraday table
-
getLastByTable
Description copied from interface:Database
Retrieves an intraday last-by table by namespace and name.Throws exceptions for unknown tables.
Always provides a live result.
This may not be configured on your system.
- Specified by:
getLastByTable
in interfaceDatabase
- Parameters:
namespace
- namespace of the tabletableName
- name of the table- Returns:
- live intraday last-by table
-
deleteNamespace
Description copied from interface:Database
Delete all files related to the specified namespace.Note: This is a dangerous API - don't use it if you don't fully understand the implications.
- Specified by:
deleteNamespace
in interfaceDatabase
- Parameters:
namespace
- namespace to be deleted.
-
deleteTables
Description copied from interface:Database
Delete all files related to a set of tables.Database.removeTable(String, String)
is a better option, unless the underlying table is damaged.- Specified by:
deleteTables
in interfaceDatabase
- Parameters:
namespace
- table namespacetableNames
- table names to delete
-
deleteMatchingTables
Description copied from interface:Database
Delete all files related to the set of tables whose names match the supplied regular expression.Note: This only works for tables that still have a definition file, although it need not be readable.
Note: This is a dangerous API - don't use it if you don't fully understand the implications.
- Specified by:
deleteMatchingTables
in interfaceDatabase
- Parameters:
namespace
- table namespacetableNameRegex
- table names in the given namespace that match this regular expression will be cleaned up.
-
addTable
public void addTable(String namespace, String tableName, Table table, Database.StorageFormat storageFormat) Description copied from interface:Database
Adds a non-partitioned table by name to the specified namespace. -
appendTable
Description copied from interface:Database
Appends to a non-partitioned table, or adds the table if it is not present. Adds a TableDefinition if necessary.- Specified by:
appendTable
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table nametable
- data to add or append
-
removeTable
Description copied from interface:Database
Removes a table. This method is a better choice thanDatabase.deleteTables(String, String...)
, unless the underlying table no longer has consistent metadata. Throws an exception for tables that don't exist.- Specified by:
removeTable
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table name
-
replaceTable
public void replaceTable(String namespace, String tableName, Table table, Database.StorageFormat storageFormat) Description copied from interface:Database
Replaces a non-partitioned table with a new table, or adds the table, if it is not already present. Not guaranteed to be atomic in the case of failures.- Specified by:
replaceTable
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table nametable
- data for the replacement tablestorageFormat
- the storage format to use (ex DeephavenV1 or Parquet)
-
addTableDefinition
Description copied from interface:Database
Adds a table definition to the specified namespace. Throws an exception if the table definition already exists.- Specified by:
addTableDefinition
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table nametableDefinition
- table definition to add
-
removeTableDefinition
Description copied from interface:Database
Removes a table definition.- Specified by:
removeTableDefinition
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table name
-
replaceTableDefinition
public void replaceTableDefinition(String namespace, String tableName, TableDefinition tableDefinition) Description copied from interface:Database
Replaces a user table definition.Not guaranteed to be atomic in the case of failures.
Does not throw an exception for tables that don't exist.
- Specified by:
replaceTableDefinition
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table nametableDefinition
- table definition for the replacement
-
addTablePartition
public void addTablePartition(String namespace, String tableName, String columnPartitionValue, Table data, Database.StorageFormat storageFormat) Description copied from interface:Database
Adds a single table partition (e.g. one date) to a partitioned table.Requires that a suitable TableDefinition has already been added.
This variant implicitly uses internalPartitionValue set by the
iris.defaultInternalPartitionNamingFunction
property.Throws an exception if the partition already exists.
- Specified by:
addTablePartition
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namecolumnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).data
- data for this partition. Must *not* contain the partitioning column.storageFormat
- the format used for storage
-
addTablePartition
public void addTablePartition(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue, Table data, Database.StorageFormat storageFormat) Description copied from interface:Database
Adds a single table partition (e.g. one date) to a partitioned table.Requires that a suitable TableDefinition has already been added.
Throws an exception if the partition already exists.
- Specified by:
addTablePartition
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table nameinternalPartitionValue
- internal (not user-visible) partition value.columnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).data
- data for this partition. Must *not* contain the partitioning column.storageFormat
- the format used for storage
-
appendTablePartition
public void appendTablePartition(String namespace, String tableName, String columnPartitionValue, Table data) Description copied from interface:Database
Adds or appends to a single table location (e.g. one date) to a partitioned user table.Requires that a suitable TableDefinition has already been added.
This variant implicitly uses internalPartitionName set by the
iris.defaultInternalPartitionNamingFunction
property.- Specified by:
appendTablePartition
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namecolumnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).data
- data to append to this partition. Must *not* contain the partitioning column.
-
appendTablePartition
public void appendTablePartition(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue, Table data) Description copied from interface:Database
Adds or appends to a single table location (e.g. one date) to a partitioned table.Requires that a suitable TableDefinition has already been added.
- Specified by:
appendTablePartition
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table nameinternalPartitionValue
- internal (not user-visible) partition value.columnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).data
- data to append to this partition. Must *not* contain the partitioning column.
-
removeTablePartition
Description copied from interface:Database
Removes a single table location (e.g. one date) from a partitioned user table.Requires that a suitable TableDefinition still exists.
This variant implicitly uses internalPartitionValue set by the
iris.defaultInternalPartitionNamingFunction
property.- Specified by:
removeTablePartition
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namecolumnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).
-
removeTablePartition
public void removeTablePartition(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue) Description copied from interface:Database
Removes a single table location (e.g. one date) from a partitioned table. Requires that a suitable TableDefinition still exists.- Specified by:
removeTablePartition
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table nameinternalPartitionValue
- internal (not user-visible) partition value.columnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).
-
replaceTablePartition
public void replaceTablePartition(String namespace, String tableName, String columnPartitionValue, Table data, Database.StorageFormat storageFormat) Description copied from interface:Database
Removes and re-adds a single table location (e.g. one date) from/to a partitioned table.Requires that a suitable TableDefinition has already been added.
This variant implicitly uses internalPartitionName set by the
iris.defaultInternalPartitionNamingFunction
property.Not guaranteed to be atomic in the case of failures.
- Specified by:
replaceTablePartition
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namecolumnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).data
- data for this partition. Must *not* contain the partitioning column.storageFormat
- the storage format to use (ex DeephavenV1 or Parquet)
-
replaceTablePartition
public void replaceTablePartition(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue, Table data, Database.StorageFormat storageFormat) Description copied from interface:Database
Replaces a single table location (e.g. one date) from/to a partitioned table.Requires that a suitable TableDefinition has already been added.
Not guaranteed to be atomic in the case of failures.
- Specified by:
replaceTablePartition
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table nameinternalPartitionValue
- internal (not user-visible) partition value.columnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).data
- data to replace this partition. Must *not* contain the partitioning column.storageFormat
- the storage format to use (ex DeephavenV1 or Parquet)
-
addPartitionedTableDefinitionIfAbsent
public void addPartitionedTableDefinitionIfAbsent(String namespace, String tableName, String partitioningColumnName, TableDefinition prototypeDefinition) Description copied from interface:Database
Adds a table definition for a partitioned table, if the table definition is absent.- Specified by:
addPartitionedTableDefinitionIfAbsent
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namepartitioningColumnName
- name of the partitioning columnprototypeDefinition
- prototype table definition used to generate the table definition
-
addPartitionedTableDefinitionIfAbsent
public void addPartitionedTableDefinitionIfAbsent(String namespace, String tableName, String partitioningColumnName, TableDefinition prototypeDefinition, boolean checkPartitioningColumn) Description copied from interface:Database
Adds a table definition for a partitioned table, if the table definition is absent.- Specified by:
addPartitionedTableDefinitionIfAbsent
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namepartitioningColumnName
- name of the partitioning columnprototypeDefinition
- prototype table definition used to generate the table definitioncheckPartitioningColumn
- true to make sure the partitioning columns are the same
-
addPartitionedTableDefinition
public void addPartitionedTableDefinition(String namespace, String tableName, String partitioningColumnName, TableDefinition prototypeDefinition) Description copied from interface:Database
Adds a table definition for a partitioned table.- Specified by:
addPartitionedTableDefinition
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namepartitioningColumnName
- name of the partitioning columnprototypeDefinition
- prototype table definition used to generate the table definition
-
addPartitionedTableDefinition
public void addPartitionedTableDefinition(String namespace, String tableName, TableDefinition prototypeDefinition) Description copied from interface:Database
Adds a table definition for a partitioned table. The partitioning column depends on theiris.defaultColumnPartitionColumnName
property.- Specified by:
addPartitionedTableDefinition
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table nameprototypeDefinition
- prototype table definition used to generate the table definition
-
addTablePartitionAndDefinition
public void addTablePartitionAndDefinition(String namespace, String tableName, String partitioningColumnName, String internalPartitionValue, String columnPartitionValue, Table data) Description copied from interface:Database
Adds a table definition and data for a partitioned table.This operation is not atomic.
- Specified by:
addTablePartitionAndDefinition
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namepartitioningColumnName
- name of the partitioning columninternalPartitionValue
- internal (not user-visible) partition value.columnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).data
- table containing the data and table definition to write out
-
addTablePartitionAndDefinition
public void addTablePartitionAndDefinition(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table data) Description copied from interface:Database
Adds a table definition and data for a partitioned user table location.This operation is not atomic.
This variant implicitly uses internalPartitionName set by the
iris.defaultInternalPartitionNamingFunction
property.- Specified by:
addTablePartitionAndDefinition
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namepartitioningColumnName
- name of the partitioning columncolumnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).data
- table containing the data and table definition to write out
-
appendCentral
public void appendCentral(String namespace, String tableName, String columnPartitionValue, Table table, boolean flush) throws IOException Description copied from interface:Database
Append to a table via a centralized table appender.Note: The table data is appended to a system-defined internal partition, and the specified column partition value.
- Specified by:
appendCentral
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namecolumnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).table
- new dataflush
- true to flush the table to disk; false to wait for flushing (if the implementation supports waiting)- Throws:
IOException
- problem appending
-
appendCentral
public void appendCentral(String namespace, String tableName, Table table, boolean flush) throws IOException Description copied from interface:Database
Append to a table via a centralized table appender.This variant implicitly uses a default partitioning column value set by the
iris.defaultColumnPartitionNamingFunction
function.- Specified by:
appendCentral
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table nametable
- new dataflush
- true to flush the table to disk; false to wait for flushing (if the implementation supports waiting)- Throws:
IOException
- problem appending
-
closeAndDeleteCentral
Description copied from interface:Database
Close all logger connections to the centralized logging for the specified table, and then atomically delete all centrally logged table data for this namespace and table name. Remove all local table data also, as withDatabase.removeTable(String, String)
.USE WITH EXTREME CAUTION!!!
- Specified by:
closeAndDeleteCentral
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table name- Throws:
IOException
- problems encountered
-
closeAndDeleteCentral
public void closeAndDeleteCentral(String namespace, String tableName, String columnPartitionValue) throws IOException Description copied from interface:Database
Close all logger connections to the centralized logging for the specified table, and then atomically delete all centrally logged table data for this namespace and table name, restricted to the column partition value if provided.USE WITH EXTREME CAUTION!!!
- Specified by:
closeAndDeleteCentral
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namecolumnPartitionValue
- optional column partition value- Throws:
IOException
- problems encountered
-
logPartitionTableSnapshot
public Database.LogHandle logPartitionTableSnapshot(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, String logInterval, ReplayerInterface replayer, boolean append) throws Exception Description copied from interface:Database
Snapshots a table at a regular interval and writes the snapshot to a centrally managed table.- Specified by:
logPartitionTableSnapshot
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namepartitioningColumnName
- name of the partitioning columncolumnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).table
- table to snapshot and log (does not contain the partition column)logInterval
- interval to log snapshots atreplayer
- data replayerappend
- true to append to an existing partition; false to replace the existing partition.- Returns:
- log handle
- Throws:
Exception
- problems
-
logPartitionTableSnapshot
public Database.LogHandle logPartitionTableSnapshot(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, String logInterval, boolean append) throws Exception Description copied from interface:Database
Snapshots a table at a regular interval and writes the snapshot to a centrally managed table.- Specified by:
logPartitionTableSnapshot
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namepartitioningColumnName
- name of the partitioning columncolumnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).table
- table to snapshot and log (does not contain the partition column)logInterval
- interval to log snapshots atappend
- true to append to an existing partition; false to replace the existing partition.- Returns:
- log handle
- Throws:
Exception
- problems
-
logPartitionTableSnapshot
public Database.LogHandle logPartitionTableSnapshot(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, long logIntervalMillis, ReplayerInterface replayer, boolean append) throws IOException Description copied from interface:Database
Snapshots a table at a regular interval and writes the snapshot to a centrally managed table.- Specified by:
logPartitionTableSnapshot
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namepartitioningColumnName
- name of the partitioning columncolumnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).table
- table to snapshot and log (does not contain the partition column)logIntervalMillis
- interval in milliseconds to log snapshots atreplayer
- data replayerappend
- true to append to an existing partition; false to replace the existing partition.- Returns:
- log handle
- Throws:
IOException
- problems
-
logPartitionTableSnapshot
public Database.LogHandle logPartitionTableSnapshot(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, long logIntervalMillis, boolean append) throws IOException Description copied from interface:Database
Snapshots a table at a regular interval and writes the snapshot to a centrally managed table.- Specified by:
logPartitionTableSnapshot
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namepartitioningColumnName
- name of the partitioning columncolumnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).table
- table to snapshot and log (does not contain the partition column)logIntervalMillis
- interval in milliseconds to log snapshots atappend
- true to append to an existing partition; false to replace the existing partition.- Returns:
- log handle
- Throws:
IOException
- problems
-
logPartitionTableIncremental
public Database.LogHandle logPartitionTableIncremental(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, ReplayerInterface replayer, boolean append) throws IOException Description copied from interface:Database
Writes all changes in a table to a centrally managed table.- Specified by:
logPartitionTableIncremental
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namepartitioningColumnName
- name of the partitioning columncolumnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).table
- table to log (does not contain the partition column)replayer
- data replayerappend
- true to append to an existing partition; false to replace the existing partition.- Returns:
- log handle
- Throws:
IOException
- problems
-
logPartitionTableIncremental
public Database.LogHandle logPartitionTableIncremental(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, boolean append) throws IOException Description copied from interface:Database
Writes all changes in a table to a centrally managed table.- Specified by:
logPartitionTableIncremental
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namepartitioningColumnName
- name of the partitioning columncolumnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).table
- table to log (does not contain the partition column)append
- true to append to an existing partition; false to replace the existing partition.- Returns:
- log handle
- Throws:
IOException
- problems
-
getColumnPartitionTableWriter
public TableWriter getColumnPartitionTableWriter(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, TableDefinition tableDefinition, boolean append) Description copied from interface:Database
Gets a table writer for a partitioned table.- Specified by:
getColumnPartitionTableWriter
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table namepartitioningColumnName
- name of the partitioning columncolumnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).tableDefinition
- table definitionappend
- true to append to an existing partition; false to overwrite an existing partition.- Returns:
- table writer
-
getTableWriter
public TableWriter getTableWriter(String namespace, String tableName, TableDefinition tableDefinition, boolean append) throws IOException Description copied from interface:Database
Gets a table writer for an unpartitioned table.- Specified by:
getTableWriter
in interfaceDatabase
- Parameters:
namespace
- table namespacetableName
- table nametableDefinition
- table definitionappend
- true to append to an existing partition; false to overwrite an existing partition.- Returns:
- table writer
- Throws:
IOException
-