Interface Database
- All Known Implementing Classes:
AbstractDatabase
,BaseDatabase
,DatabaseWrapper
,ImporterDatabase
,OnDiskDatabase
,OnDiskQueryDatabase
,RemoteDatabase
,ReplayDatabase
public interface Database
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
Database.LogHandle
Handle for logged tables.static class
Database.StorageFormat
-
Method Summary
Modifier and Type Method Description default void
addColumnPartitionAndDefinition(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table data)
default void
addColumnPartitionAndDefinition(String namespace, String tableName, String partitioningColumnName, String internalPartitionValue, String columnPartitionValue, Table data)
void
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.default void
addTable(String namespace, String tableName, Table table)
Adds a non-partitioned table by name to the specified namespace.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.default void
addTablePartition(String namespace, String tableName, String columnPartitionValue, Table data)
Adds a single table partition (e.g.void
addTablePartition(String namespace, String tableName, String columnPartitionValue, Table data, Database.StorageFormat storageFormat)
Adds a single table partition (e.g.default void
addTablePartition(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue, Table data)
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.Table
getCatalog()
Gets a table containing information on all tables in the DB.String
getClientHost()
Gets a client hostname.TableWriter
getColumnPartitionTableWriter(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, TableDefinition tableDefinition, boolean append)
Gets a table writer for a partitioned table.Table
getErrorLog()
Get an error log for the DB.List<String>
getIntradayPartitions(String namespace, String tableName)
Get a list of all internal partition values available for the specified intraday table.Table
getIntradayPartitionsAsTable(String namespace, String tableName)
Get all internal partition values available for the specified intraday table, returned as table.default Table
getIntradayTable(String namespace, String tableName)
Retrieves an intraday table by namespace and name.default Table
getIntradayTable(String namespace, String tableName, boolean live)
Retrieves an intraday table by namespace and name.default Table
getIntradayTable(String namespace, String tableName, String internalPartitionValue)
Retrieves a single internal partition of the specified intraday table.default Table
getIntradayTable(String namespace, String tableName, String internalPartitionValue, boolean live)
Retrieves a single internal partition of the specified intraday table.default Table
getIntradayTable(String namespace, String tableName, Set<String> internalPartitionValues)
Retrieves the specified internal partitions of the specified intraday table.default Table
getIntradayTable(String namespace, String tableName, Set<String> internalPartitionValues, boolean live)
Retrieves the specified internal partitions of the specified intraday table.default Table
getIntradayTableV2(String namespace, String tableName)
Retrieves an intraday table by namespace and name.Table
getIntradayTableV2(String namespace, String tableName, boolean live)
Retrieves an intraday table by namespace and name.default Table
getIntradayTableV2(String namespace, String tableName, String internalPartitionValue)
Retrieves a single internal partition of the specified intraday table.default Table
getIntradayTableV2(String namespace, String tableName, String internalPartitionValue, boolean live)
Retrieves a single internal partition of the specified intraday table.default Table
getIntradayTableV2(String namespace, String tableName, Set<String> internalPartitionValues)
Retrieves the specified internal partitions of the specified intraday table.Table
getIntradayTableV2(String namespace, String tableName, Set<String> internalPartitionValues, boolean live)
Retrieves the specified internal partitions of the specified intraday table.Table
getLastByTable(String namespace, String tableName)
Retrieves an intraday last-by table by namespace and name.List<String>
getNamespaces()
Retrieves all namespace names from the database.String
getProcessInfoId()
Gets the unique processInfoId of the worker.ReplayerInterface
getReplayer(DBDateTime timeStart, DBDateTime timeEnd)
Creates a data replayer.ReplayerInterface
getReplayer(DBDateTime timeStart, DBDateTime timeEnd, long interval)
Creates a data replayer.default ReplayerInterface
getReplayer(DBDateTime timeStart, DBDateTime timeEnd, String interval)
Creates a data replayer.default ReplayerInterface
getReplayer(String timeStart, String timeEnd)
Creates a data replayer.default ReplayerInterface
getReplayer(String timeStart, String timeEnd, String interval)
Creates a data replayer.SchemaService
getSchemaService()
String
getServerHost()
Gets the server hostname.List<String>
getSystemNamespaces()
Retrieves system namespace names from the database.default Table
getTable(String namespace, String tableName)
Retrieves a table by namespace and name.TableDefinition
getTableDefinition(String namespace, String tableName)
Retrieves a table definition by namespace and name, generally from the schema service.List<String>
getTableNames(String namespace)
Gets all table names from the specified namespace.Table
getTableV2(String namespace, String tableName)
Retrieves a table by namespace and name.TableWriter
getTableWriter(String namespace, String tableName, TableDefinition tableDefinition, boolean append)
Gets a table writer for an unpartitioned table.com.fishlib.auth.UserContext
getUserContext()
Gets the user authentication context.List<String>
getUserNamespaces()
Retrieves user namespace names from the database.String
getWorkerName()
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
hasTable(String namespace, String tableName)
Determines if the table is defined in the DB.default Table
i(String namespace, String tableName)
Retrieves an intraday table by namespace and name.default Table
i(String namespace, String tableName, boolean live)
Retrieves an intraday table by namespace and name.default Table
i(String namespace, String tableName, String internalPartitionValue)
Convenience method forgetIntradayTable(String, String, String)
.default Table
i(String namespace, String tableName, String internalPartitionValue, boolean live)
Convenience method forgetIntradayTable(String, String, String, boolean)
.default Table
i(String namespace, String tableName, Set<String> internalPartitionValues)
Convenience method forgetIntradayTable(String, String, Set)
default Table
i(String namespace, String tableName, Set<String> internalPartitionValues, boolean live)
Convenience method forgetIntradayTable(String, String, Set, boolean)
default Table
i2(String namespace, String tableName)
Convenience method delegates togetIntradayTableV2(String, String)
.default Table
i2(String namespace, String tableName, boolean live)
Convenience method delegates togetIntradayTableV2(String, String, boolean)
.default Table
i2(String namespace, String tableName, String internalPartitionValue)
Convenience method delegates togetIntradayTableV2(String, String, String)
.default Table
i2(String namespace, String tableName, String internalPartitionValue, boolean live)
Convenience method delegates togetIntradayTableV2(String, String, String, boolean)
default Table
i2(String namespace, String tableName, Set<String> internalPartitionValues)
Convenience method delegates togetIntradayTableV2(String, String, Set)
default Table
i2(String namespace, String tableName, Set<String> internalPartitionValues, boolean live)
Convenience method delegates togetIntradayTableV2(String, String, Set, boolean)
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.Database.LogHandle
logPartitionTableIncremental(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, boolean append)
Writes all changes in a table to a centrally managed table.Database.LogHandle
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.Database.LogHandle
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.Database.LogHandle
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.Database.LogHandle
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.Database.LogHandle
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.Table
makeRemote(Table value)
Make a copy of a local table on a remote server.Table
mr(Table value)
Convenience method formakeRemote(Table)
.
Make a copy of a local table on a remote server.void
reloadData()
Reload any internally-cached data.void
removeTable(String namespace, String tableName)
Removes a table.void
removeTableDefinition(String namespace, String tableName)
Deprecated.UseSchemaService.deleteSchema(String, String)
instead.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.default void
replaceTable(String namespace, String tableName, Table table)
Replaces a non-partitioned table with a new table, or adds the table, if it is not already present.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.default void
replaceTablePartition(String namespace, String tableName, String columnPartitionValue, Table data)
Removes and re-adds a single table location (e.g.void
replaceTablePartition(String namespace, String tableName, String columnPartitionValue, Table data, Database.StorageFormat storageFormat)
Removes and re-adds a single table location (e.g.default void
replaceTablePartition(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue, Table data)
Replaces 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.default void
rm(String namespace, String tableName)
Convenience method forremoveTable(String, String)
.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.default Table
t(String namespace, String tableName)
Retrieves a table by namespace and name.default Table
t2(String namespace, String tableName)
Retrieves a table by namespace and name.default Table
timeTable(long periodNanos)
Creates a table that adds a new row on a regular interval.default Table
timeTable(long periodNanos, ReplayerInterface replayer)
Creates a table that adds a new row on a regular interval.default Table
timeTable(DBDateTime startTime, long periodNanos)
Creates a table that adds a new row on a regular interval, starting from a specified time.default Table
timeTable(DBDateTime startTime, long periodNanos, ReplayerInterface replayer)
Creates a table that adds a new row on a regular interval, starting from a specified time.default Table
timeTable(DBDateTime startTime, String period)
Creates a table that adds a new row on a regular interval, starting from a specified time.default Table
timeTable(DBDateTime startTime, String period, ReplayerInterface replayer)
Creates a table that adds a new row on a regular interval, starting from a specified time.default Table
timeTable(String period)
Creates a table that adds a new row on a regular interval.default Table
timeTable(String startTime, long periodNanos)
Creates a table that adds a new row on a regular interval, starting from a specified time.default Table
timeTable(String startTime, long periodNanos, ReplayerInterface replayer)
Creates a table that adds a new row on a regular interval, starting from a specified time.default Table
timeTable(String period, ReplayerInterface replayer)
Creates a table that adds a new row on a regular interval.default Table
timeTable(String startTime, String period)
Creates a table that adds a new row on a regular interval, starting from a specified time.default Table
timeTable(String startTime, String period, ReplayerInterface replayer)
Creates a table that adds a new row on a regular interval, starting from a specified time.
-
Method Details
-
getWorkerName
String getWorkerName()Gets the worker name.- Returns:
- worker name
-
getProcessInfoId
String getProcessInfoId()Gets the unique processInfoId of the worker.- Returns:
- process info id
-
getUserContext
Gets the user authentication context.- Returns:
- user authentication context
- Throws:
IOException
- problem retrieving the context
-
getClientHost
String getClientHost()Gets a client hostname.- Returns:
- client hostname
-
getServerHost
String getServerHost()Gets the server hostname.- Returns:
- server hostname.
-
startup
void startup()Starts this database up. -
shutdown
void shutdown()Shuts this database down. -
reloadData
void reloadData()Reload any internally-cached data.- ImplNote:
- OnDiskQueryDatabase resets its TableDataService.
-
gc
void gc()Invoke the garbage collector for this database. -
getErrorLog
Get an error log for the DB. This is a real-time table.- Returns:
- error log
- Throws:
Exception
- problems retrieving the error log.
-
setWatchdogMillis
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 callingsetWatchdogTimeoutProcedure(LongConsumer)
.- 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
Set the watchdog timeout procedure. If LiveTableMonitor refresh loop takes longer than the amount of time specified viasetWatchdogMillis(int)
, the timeout procedure is called.- Parameters:
watchdogTimeoutProcedure
- the procedure called when the LiveTableMonitor refresh loop takes longer than watchdogMillis.- Throws:
IOException
-
executeQuery
Executes a DB query.- 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
Imports a class for use in a query. For example:db.importClass(X.class) t=db.t(namespace,tablename).where("X.func(A)")
- Parameters:
classToImport
- the class
-
importStatic
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
.- Parameters:
classToImport
- The class
-
mr
Convenience method formakeRemote(Table)
.
Make a copy of a local table on a remote server.- Parameters:
value
- local table- Returns:
- remote table.
-
makeRemote
Make a copy of a local table on a remote server.- Parameters:
value
- local table- Returns:
- remote table.
-
getReplayer
Creates a data replayer.- Parameters:
timeStart
- replay start timetimeEnd
- replay end time- Returns:
- replayer
- Throws:
IOException
- problems creating the replayer
-
getReplayer
Creates a data replayer.- Parameters:
timeStart
- replay start timetimeEnd
- replay end time- Returns:
- replayer
- Throws:
IOException
- problems creating the replayer
-
getReplayer
ReplayerInterface getReplayer(DBDateTime timeStart, DBDateTime timeEnd, long interval) throws ExceptionCreates a data replayer.- Parameters:
timeStart
- replay start timetimeEnd
- replay end timeinterval
- replay step size- Returns:
- replayer
- Throws:
IOException
- problems creating the replayerException
-
getReplayer
default ReplayerInterface getReplayer(String timeStart, String timeEnd, String interval) throws ExceptionCreates a data replayer.- Parameters:
timeStart
- replay start timetimeEnd
- replay end timeinterval
- replay step size- Returns:
- replayer
- Throws:
IOException
- problems creating the replayerException
-
getReplayer
default ReplayerInterface getReplayer(DBDateTime timeStart, DBDateTime timeEnd, String interval) throws ExceptionCreates a data replayer.- Parameters:
timeStart
- replay start timetimeEnd
- replay end timeinterval
- replay step size- Returns:
- replayer
- Throws:
IOException
- problems creating the replayerException
-
getSystemNamespaces
Retrieves system namespace names from the database.- Returns:
- The list of namespace names
-
getUserNamespaces
Retrieves user namespace names from the database.- Returns:
- The list of namespace names
-
getNamespaces
Retrieves all namespace names from the database.- Returns:
- The list of namespace names
-
hasNamespace
Determines if the namespace is present in the DB.- Parameters:
namespace
- namespace- Returns:
- true if the namespace exists; false otherwise.
-
getCatalog
Table getCatalog()Gets a table containing information on all tables in the DB.- Returns:
- table containing information on all tables in the DB
-
getTableNames
Gets all table names from the specified namespace.- Parameters:
namespace
- The namespace to list the contents of- Returns:
- The list of table names
-
hasTable
Determines if the table is defined in the DB.- Parameters:
namespace
- namespacetableName
- table name- Returns:
- true if the table definition exists; false otherwise.
-
hasIntradayTable
Determines if the table is present in the DB and currently has intraday data.- Parameters:
namespace
- namespacetableName
- table name- Returns:
- true if the table exists and has intraday data; false otherwise.
- ImplNote:
OnDiskQueryDatabase
only allows this call for System tables.
-
getTableDefinition
Retrieves a table definition by namespace and name, generally from the schema service.- 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
Get a list of all internal partition values available for the specified intraday table.- 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.
- ImplNote:
OnDiskQueryDatabase
only allows this call for System tables.
-
getIntradayPartitionsAsTable
Get all internal partition values available for the specified intraday table, returned as table.- 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.
- ImplNote:
OnDiskQueryDatabase
only allows this call for System tables.
-
hasImportedData
Determines if the historical table's column partition is present in the DB.- 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.
- ImplNote:
OnDiskQueryDatabase
only allows this call for System tables.
-
hasIntradayData
Determines if the intraday table's column partition is present in the DB.- 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.
- ImplNote:
OnDiskQueryDatabase
only allows this call for System tables.
-
getSchemaService
SchemaService getSchemaService()- Returns:
- The
SchemaService
that thisDatabase
was created with.
-
getTable
Retrieves a table by namespace and name. Throws exceptions for unknown tables.- Parameters:
namespace
- namespace of the tabletableName
- name of the table- Returns:
- table
-
t
Retrieves a table by namespace and name. Throws exceptions for unknown tables.- Parameters:
namespace
- namespace of the tabletableName
- name of the table- Returns:
- table
-
getTableV2
Retrieves a table by namespace and name. Throws exceptions for unknown tables.- Parameters:
namespace
- namespace of the tabletableName
- name of the table- Returns:
- table in "v2" format
-
t2
Retrieves a table by namespace and name. Throws exceptions for unknown tables.- Parameters:
namespace
- namespace of the tabletableName
- name of the table- Returns:
- table in "v2" format
-
getIntradayTable
Retrieves an intraday table by namespace and name. Throws exceptions for unknown tables. Always provides a live result.- Parameters:
namespace
- namespace of the tabletableName
- name of the table- Returns:
- live intraday table
-
i
Retrieves an intraday table by namespace and name. Throws exceptions for unknown tables. Always provides a live result.- Parameters:
namespace
- namespace of the tabletableName
- name of the table- Returns:
- live intraday table
-
getIntradayTableV2
Retrieves an intraday table by namespace and name. Throws exceptions for unknown tables. Always provides a live result.- Parameters:
namespace
- namespace of the tabletableName
- name of the table- Returns:
- live intraday table
-
i2
Convenience method delegates togetIntradayTableV2(String, String)
. -
getIntradayTable
Retrieves an intraday table by namespace and name. Throws exceptions for unknown tables.- Parameters:
namespace
- namespace of the tabletableName
- name of the tablelive
- true if the table should be live/updating; false otherwise- Returns:
- intraday table
-
i
Retrieves an intraday table by namespace and name. Throws exceptions for unknown tables.- Parameters:
namespace
- namespace of the tabletableName
- name of the tablelive
- true if the table should be live/updating; false otherwise- Returns:
- intraday table
-
getIntradayTableV2
Retrieves an intraday table by namespace and name. Throws exceptions for unknown tables.- Parameters:
namespace
- namespace of the tabletableName
- name of the tablelive
- true if the table should be live/updating; false otherwise- Returns:
- intraday table
-
i2
Convenience method delegates togetIntradayTableV2(String, String, boolean)
. -
getIntradayTable
Retrieves a single internal partition 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.
Always provides a live result.
- Parameters:
namespace
- namespace of the tabletableName
- name of the tableinternalPartitionValue
- locations will be restricted to this internal partition value- Returns:
- live single partition intraday table
- ImplNote:
- Delegates to
getIntradayTableV2(String, String, String, boolean)
with live set to true.
-
i
Convenience method forgetIntradayTable(String, String, String)
.Retrieves a single internal partition 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.
Always provides a live result.
- Parameters:
namespace
- namespace of the tabletableName
- name of the tableinternalPartitionValue
- locations will be restricted to this internal partition value- Returns:
- live single partition intraday table
-
getIntradayTableV2
default Table getIntradayTableV2(String namespace, String tableName, String internalPartitionValue)Retrieves a single internal partition 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.
Always provides a live result.
- Parameters:
namespace
- namespace of the tabletableName
- name of the tableinternalPartitionValue
- locations will be restricted to this internal partition value- Returns:
- live single partition intraday table
- ImplNote:
- Delegates to
getIntradayTableV2(String, String, String, boolean)
with live set to true.
-
i2
Convenience method delegates togetIntradayTableV2(String, String, String)
. -
getIntradayTable
default Table getIntradayTable(String namespace, String tableName, String internalPartitionValue, boolean live)Retrieves a single internal partition 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.
- Parameters:
namespace
- namespace of the tabletableName
- name of the tableinternalPartitionValue
- locations will be restricted to this internal partition valuelive
- true if the table should be live/updating; false otherwise- Returns:
- single partition intraday table
- ImplNote:
- Delegates to
getIntradayTableV2(String, String, String, boolean)
.
-
i
Convenience method forgetIntradayTable(String, String, String, boolean)
.Retrieves a single internal partition 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.
- Parameters:
namespace
- namespace of the tabletableName
- name of the tableinternalPartitionValue
- locations will be restricted to this internal partition valuelive
- true if the table should be live/updating; false otherwise- Returns:
- single partition intraday table
-
getIntradayTableV2
default Table getIntradayTableV2(String namespace, String tableName, String internalPartitionValue, boolean live)Retrieves a single internal partition 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.
- Parameters:
namespace
- namespace of the tabletableName
- name of the tableinternalPartitionValue
- locations will be restricted to this internal partition valuelive
- true if the table should be live/updating; false otherwise- Returns:
- single partition intraday table
- ImplNote:
OnDiskDatabase
only allows this call for System tables.
-
i2
Convenience method delegates togetIntradayTableV2(String, String, String, boolean)
-
getIntradayTable
default Table getIntradayTable(String namespace, String tableName, Set<String> internalPartitionValues)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.
Always provides a live result.
- Parameters:
namespace
- namespace of the tabletableName
- name of the tableinternalPartitionValues
- locations will be restricted to these internal partition values- Returns:
- live intraday table with the specified internal partitions
- ImplNote:
- Delegates to
getIntradayTableV2(String, String, Set)
-
i
Convenience method forgetIntradayTable(String, String, Set)
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.
Always provides a live result.
- Parameters:
namespace
- namespace of the tabletableName
- name of the tableinternalPartitionValues
- locations will be restricted to these internal partition values- Returns:
- live intraday table with the specified internal partitions
-
getIntradayTableV2
default Table getIntradayTableV2(String namespace, String tableName, Set<String> internalPartitionValues)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.
Always provides a live result.
- Parameters:
namespace
- namespace of the tabletableName
- name of the tableinternalPartitionValues
- locations will be restricted to these internal partition values- Returns:
- live intraday table with the specified internal partitions
- ImplNote:
OnDiskDatabase
only allows this call for System tables.
-
i2
Convenience method delegates togetIntradayTableV2(String, String, Set)
-
getIntradayTable
default Table getIntradayTable(String namespace, String tableName, Set<String> internalPartitionValues, boolean live)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.
- 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
- ImplNote:
- Delegates to
getIntradayTableV2(String, String, Set, boolean)
-
i
default Table i(String namespace, String tableName, Set<String> internalPartitionValues, boolean live)Convenience method forgetIntradayTable(String, String, Set, boolean)
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.
- 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
-
getIntradayTableV2
Table getIntradayTableV2(String namespace, String tableName, Set<String> internalPartitionValues, boolean live)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.
- 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
- ImplNote:
OnDiskDatabase
only allows this call for System tables.
-
i2
default Table i2(String namespace, String tableName, Set<String> internalPartitionValues, boolean live)Convenience method delegates togetIntradayTableV2(String, String, Set, boolean)
-
getLastByTable
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.
- Parameters:
namespace
- namespace of the tabletableName
- name of the table- Returns:
- live intraday last-by table
-
timeTable
Creates a table that adds a new row on a regular interval.- Parameters:
period
- time interval between new row additions.- Returns:
- time table
- Throws:
Exception
- problem creating the time table
-
timeTable
Creates a table that adds a new row on a regular interval. For use with data replay.- Parameters:
period
- time interval between new row additionsreplayer
- data replayer- Returns:
- time table
- Throws:
Exception
- problem creating the time table
-
timeTable
Creates a table that adds a new row on a regular interval, starting from a specified time.- Parameters:
startTime
- start time for adding new rowsperiod
- time interval between new row additions- Returns:
- time table
- Throws:
Exception
- problem creating the time table
-
timeTable
default Table timeTable(DBDateTime startTime, String period, ReplayerInterface replayer) throws ExceptionCreates a table that adds a new row on a regular interval, starting from a specified time. For use with data replay.- Parameters:
startTime
- start time for adding new rowsperiod
- time interval between new row additionsreplayer
- data replayer- Returns:
- time table
- Throws:
Exception
- problem creating the time table
-
timeTable
Creates a table that adds a new row on a regular interval, starting from a specified time.- Parameters:
startTime
- start time for adding new rowsperiod
- time interval between new row additions- Returns:
- time table
- Throws:
Exception
- problem creating the time table
-
timeTable
default Table timeTable(String startTime, String period, ReplayerInterface replayer) throws ExceptionCreates a table that adds a new row on a regular interval, starting from a specified time. For use with data replay.- Parameters:
startTime
- start time for adding new rowsperiod
- time interval between new row additionsreplayer
- data replayer- Returns:
- time table
- Throws:
Exception
- problem creating the time table
-
timeTable
Creates a table that adds a new row on a regular interval.- Parameters:
periodNanos
- time interval between new row additions in nanoseconds.- Returns:
- time table
- Throws:
Exception
- problem creating the time table
-
timeTable
Creates a table that adds a new row on a regular interval. For use with data replay.- Parameters:
periodNanos
- time interval between new row additions in nanoseconds.replayer
- data replayer- Returns:
- time table
- Throws:
Exception
- problem creating the time table
-
timeTable
Creates a table that adds a new row on a regular interval, starting from a specified time.- Parameters:
startTime
- start time for adding new rowsperiodNanos
- time interval between new row additions in nanoseconds.- Returns:
- time table
- Throws:
Exception
- problem creating the time table
-
timeTable
default Table timeTable(DBDateTime startTime, long periodNanos, ReplayerInterface replayer) throws ExceptionCreates a table that adds a new row on a regular interval, starting from a specified time. For use with data replay.- Parameters:
startTime
- start time for adding new rowsperiodNanos
- time interval between new row additions in nanoseconds.replayer
- data replayer- Returns:
- time table
- Throws:
Exception
- problem creating the time table
-
timeTable
Creates a table that adds a new row on a regular interval, starting from a specified time.- Parameters:
startTime
- start time for adding new rowsperiodNanos
- time interval between new row additions in nanoseconds.- Returns:
- time table
- Throws:
Exception
- problem creating the time table
-
timeTable
default Table timeTable(String startTime, long periodNanos, ReplayerInterface replayer) throws ExceptionCreates a table that adds a new row on a regular interval, starting from a specified time. For use with data replay.- Parameters:
startTime
- start time for adding new rowsperiodNanos
- time interval between new row additions in nanoseconds.replayer
- data replayer- Returns:
- time table
- Throws:
Exception
- problem creating the time table
-
deleteNamespace
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.
- Parameters:
namespace
- namespace to be deleted.- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
deleteTables
Delete all files related to a set of tables.removeTable(String, String)
is a better option, unless the underlying table is damaged.- Parameters:
namespace
- table namespacetableNames
- table names to delete- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
deleteMatchingTables
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.
- Parameters:
namespace
- table namespacetableNameRegex
- table names in the given namespace that match this regular expression will be cleaned up.- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
addTable
Adds a non-partitioned table by name to the specified namespace.- Parameters:
namespace
- table namespacetableName
- table nametable
- table to add- Throws:
RuntimeException
- table already exists- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
addTable
void addTable(String namespace, String tableName, Table table, Database.StorageFormat storageFormat)Adds a non-partitioned table by name to the specified namespace.- Parameters:
namespace
- table namespacetableName
- table nametable
- table to addstorageFormat
- the storage format to use (ex DeephavenV1 or Parquet)- Throws:
RuntimeException
- table already exists- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
appendTable
Appends to a non-partitioned table, or adds the table if it is not present. Adds a TableDefinition if necessary.- Parameters:
namespace
- table namespacetableName
- table nametable
- data to add or append- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
rm
Convenience method forremoveTable(String, String)
. -
removeTable
Removes a table. This method is a better choice thandeleteTables(String, String...)
, unless the underlying table no longer has consistent metadata. Throws an exception for tables that don't exist.- Parameters:
namespace
- table namespacetableName
- table name- Throws:
RuntimeException
- table does not exist- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
replaceTable
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.- Parameters:
namespace
- table namespacetableName
- table nametable
- data for the replacement table- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
replaceTable
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. Not guaranteed to be atomic in the case of failures.- Parameters:
namespace
- table namespacetableName
- table nametable
- data for the replacement tablestorageFormat
- the storage format to use (ex DeephavenV1 or Parquet)- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
addTableDefinition
Adds a table definition to the specified namespace. Throws an exception if the table definition already exists.- Parameters:
namespace
- table namespacetableName
- table nametableDefinition
- table definition to add- Throws:
RuntimeException
- table definition already exists- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables.
-
removeTableDefinition
Deprecated.UseSchemaService.deleteSchema(String, String)
instead.Removes a table definition.- Parameters:
namespace
- table namespacetableName
- table name- Throws:
RuntimeException
- table definition does not exist- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables.
-
replaceTableDefinition
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.
- Parameters:
namespace
- table namespacetableName
- table nametableDefinition
- table definition for the replacement- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables..
-
addTablePartition
@FinalDefault default void addTablePartition(String namespace, String tableName, String columnPartitionValue, Table data)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.
- 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.- Throws:
RuntimeException
- if the partition already exists- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
addTablePartition
void addTablePartition(String namespace, String tableName, String columnPartitionValue, Table data, Database.StorageFormat storageFormat)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.
- 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- Throws:
RuntimeException
- if the partition already exists- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
addTablePartition
@FinalDefault default void addTablePartition(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue, Table data)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.
- 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.- Throws:
RuntimeException
- if the partition already exists- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
addTablePartition
void addTablePartition(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue, Table data, Database.StorageFormat storageFormat)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.
- 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- Throws:
RuntimeException
- if the partition already exists- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
appendTablePartition
void appendTablePartition(String namespace, String tableName, String columnPartitionValue, Table data)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.- 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.- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
appendTablePartition
void appendTablePartition(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue, Table data)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.
- 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.- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
removeTablePartition
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.- Parameters:
namespace
- table namespacetableName
- table namecolumnPartitionValue
- column partition value (e.g. "2015-09-25" for a Date partitioning column).- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
removeTablePartition
void removeTablePartition(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue)Removes a single table location (e.g. one date) from a partitioned table. Requires that a suitable TableDefinition still exists.- 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).- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
replaceTablePartition
@FinalDefault default void replaceTablePartition(String namespace, String tableName, String columnPartitionValue, Table data)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.
- 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.- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
replaceTablePartition
void replaceTablePartition(String namespace, String tableName, String columnPartitionValue, Table data, Database.StorageFormat storageFormat)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.
- 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)- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
replaceTablePartition
@FinalDefault default void replaceTablePartition(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue, Table data)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.
- 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.- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
replaceTablePartition
void replaceTablePartition(String namespace, String tableName, String internalPartitionValue, String columnPartitionValue, Table data, Database.StorageFormat storageFormat)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.
- 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)- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
addPartitionedTableDefinitionIfAbsent
void addPartitionedTableDefinitionIfAbsent(@NotNull String namespace, @NotNull String tableName, @NotNull String partitioningColumnName, @NotNull TableDefinition prototypeDefinition)Adds a table definition for a partitioned table, if the table definition is absent.- Parameters:
namespace
- table namespacetableName
- table namepartitioningColumnName
- name of the partitioning columnprototypeDefinition
- prototype table definition used to generate the table definition- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables.
-
addPartitionedTableDefinitionIfAbsent
void addPartitionedTableDefinitionIfAbsent(@NotNull String namespace, @NotNull String tableName, @NotNull String partitioningColumnName, @NotNull TableDefinition prototypeDefinition, boolean checkPartitioningColumn)Adds a table definition for a partitioned table, if the table definition is absent.- 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- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables.
-
addPartitionedTableDefinition
void addPartitionedTableDefinition(@NotNull String namespace, @NotNull String tableName, @NotNull String partitioningColumnName, @NotNull TableDefinition prototypeDefinition)Adds a table definition for a partitioned table.- Parameters:
namespace
- table namespacetableName
- table namepartitioningColumnName
- name of the partitioning columnprototypeDefinition
- prototype table definition used to generate the table definition- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables.
-
addPartitionedTableDefinition
void addPartitionedTableDefinition(@NotNull String namespace, @NotNull String tableName, @NotNull TableDefinition prototypeDefinition)Adds a table definition for a partitioned table. The partitioning column depends on theiris.defaultColumnPartitionColumnName
property.- Parameters:
namespace
- table namespacetableName
- table nameprototypeDefinition
- prototype table definition used to generate the table definition- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables.
-
addTablePartitionAndDefinition
void addTablePartitionAndDefinition(@NotNull String namespace, @NotNull String tableName, @NotNull String partitioningColumnName, @NotNull String internalPartitionValue, @NotNull String columnPartitionValue, @NotNull Table data)Adds a table definition and data for a partitioned table.This operation is not atomic.
- 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- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
addColumnPartitionAndDefinition
-
addTablePartitionAndDefinition
void addTablePartitionAndDefinition(@NotNull String namespace, @NotNull String tableName, @NotNull String partitioningColumnName, @NotNull String columnPartitionValue, @NotNull Table data)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.- 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- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables, and it is not intended for use with centrally managed tables.
-
addColumnPartitionAndDefinition
-
appendCentral
void appendCentral(String namespace, String tableName, String columnPartitionValue, Table table, boolean flush) throws IOExceptionAppend 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.
- 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- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables.
-
appendCentral
void appendCentral(String namespace, String tableName, Table table, boolean flush) throws IOExceptionAppend to a table via a centralized table appender.This variant implicitly uses a default partitioning column value set by the
iris.defaultColumnPartitionNamingFunction
function.- 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- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables.
-
closeAndDeleteCentral
void closeAndDeleteCentral(@NotNull String namespace, @NotNull String tableName) throws IOExceptionClose 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 withremoveTable(String, String)
.USE WITH EXTREME CAUTION!!!
- Parameters:
namespace
- table namespacetableName
- table name- Throws:
IOException
- problems encountered- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables.
-
closeAndDeleteCentral
void closeAndDeleteCentral(@NotNull String namespace, @NotNull String tableName, @Nullable String columnPartitionValue) throws IOExceptionClose 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!!!
- Parameters:
namespace
- table namespacetableName
- table namecolumnPartitionValue
- optional column partition value- Throws:
IOException
- problems encountered- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables.
-
logPartitionTableSnapshot
Database.LogHandle logPartitionTableSnapshot(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, String logInterval, ReplayerInterface replayer, boolean append) throws ExceptionSnapshots a table at a regular interval and writes the snapshot to a centrally managed table.- 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- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables.
-
logPartitionTableSnapshot
Database.LogHandle logPartitionTableSnapshot(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, String logInterval, boolean append) throws ExceptionSnapshots a table at a regular interval and writes the snapshot to a centrally managed table.- 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- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables.
-
logPartitionTableSnapshot
Database.LogHandle logPartitionTableSnapshot(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, long logIntervalMillis, ReplayerInterface replayer, boolean append) throws IOExceptionSnapshots a table at a regular interval and writes the snapshot to a centrally managed table.- 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- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables.
-
logPartitionTableSnapshot
Database.LogHandle logPartitionTableSnapshot(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, long logIntervalMillis, boolean append) throws IOExceptionSnapshots a table at a regular interval and writes the snapshot to a centrally managed table.- 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- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables.
-
logPartitionTableIncremental
Database.LogHandle logPartitionTableIncremental(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, ReplayerInterface replayer, boolean append) throws IOExceptionWrites all changes in a table to a centrally managed table.- 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- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables.
-
logPartitionTableIncremental
Database.LogHandle logPartitionTableIncremental(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, Table table, boolean append) throws IOExceptionWrites all changes in a table to a centrally managed table.- 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- ImplNote:
OnDiskQueryDatabase
only allows this call for User tables.
-
getColumnPartitionTableWriter
TableWriter getColumnPartitionTableWriter(String namespace, String tableName, String partitioningColumnName, String columnPartitionValue, TableDefinition tableDefinition, boolean append)Gets a table writer for a partitioned table.- 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
TableWriter getTableWriter(String namespace, String tableName, TableDefinition tableDefinition, boolean append) throws IOExceptionGets a table writer for an unpartitioned table.- 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
-