Package oracle.rsi
Interface ReactiveStreamsIngestion.Builder
-
- Enclosing interface:
- ReactiveStreamsIngestion
public static interface ReactiveStreamsIngestion.Builder
TheReactiveStreamsIngestion
library instance builder.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description ReactiveStreamsIngestion.Builder
bufferInterval(java.time.Duration duration)
Maximum time a record can stay in RSI memory before being inserted into the database.ReactiveStreamsIngestion.Builder
bufferRows(int numOfRows)
Maximum number of rows the RSI library is allowed to buffer.ReactiveStreamsIngestion
build()
Returns a RSI instance configured as specified.ReactiveStreamsIngestion.Builder
columns(java.lang.String[] columns)
Column names of the database table.ReactiveStreamsIngestion.Builder
doUpsert()
INSERT new row or UPDATE if exists.ReactiveStreamsIngestion.Builder
entity(java.lang.Class<?> entity)
The mapping class annotated withStreamEntity
andStreamField
.ReactiveStreamsIngestion.Builder
executor(java.util.concurrent.Executor executor)
An instance ofExecutor
.ReactiveStreamsIngestion.Builder
globalServiceName(java.lang.String serviceName)
The Global Service Name of Sharded database.ReactiveStreamsIngestion.Builder
password(java.lang.String password)
The database password.ReactiveStreamsIngestion.Builder
schema(java.lang.String schema)
The database schema.ReactiveStreamsIngestion.Builder
table(java.lang.String tableName)
Name of the database table.ReactiveStreamsIngestion.Builder
transformer(java.util.function.Function<byte[],java.lang.Object> transformer)
AFunction
that produces a result from the given byte[].ReactiveStreamsIngestion.Builder
url(java.lang.String url)
The database url.ReactiveStreamsIngestion.Builder
useDirectPath()
Enable the Direct Path Load.ReactiveStreamsIngestion.Builder
useDirectPathNoLog()
Enable Direct Path NOLOG Statement Option.ReactiveStreamsIngestion.Builder
useDirectPathParallel()
Enable Direct Path PARALLEL Statement Option.ReactiveStreamsIngestion.Builder
useDirectPathSkipIndexMaintenance()
Enable Direct Path SKIP_INDEX_MAINTENANCE Statement Option.ReactiveStreamsIngestion.Builder
useDirectPathSkipUnusableIndexes()
Enable Direct Path SKIP_UNUSABLE_INDEXES Statement Option.ReactiveStreamsIngestion.Builder
username(java.lang.String username)
The database username.
-
-
-
Method Detail
-
url
ReactiveStreamsIngestion.Builder url(java.lang.String url)
The database url.- Parameters:
url
- the database url.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
username
ReactiveStreamsIngestion.Builder username(java.lang.String username)
The database username.- Parameters:
username
- the database username.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
schema
ReactiveStreamsIngestion.Builder schema(java.lang.String schema)
The database schema.- Parameters:
schema
- the database schema.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
password
ReactiveStreamsIngestion.Builder password(java.lang.String password)
The database password.- Parameters:
password
- the database password.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
globalServiceName
ReactiveStreamsIngestion.Builder globalServiceName(java.lang.String serviceName)
The Global Service Name of Sharded database. The Service Name, if provided, is quietly ignored if the database is not sharded.- Parameters:
serviceName
- the sharded database global service name.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
executor
ReactiveStreamsIngestion.Builder executor(java.util.concurrent.Executor executor)
An instance ofExecutor
. The default is common pool.- Parameters:
executor
- an instance ofExecutor
. Uses default if null.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
bufferRows
ReactiveStreamsIngestion.Builder bufferRows(int numOfRows)
Maximum number of rows the RSI library is allowed to buffer. If not supplied, RSI would buffer the rows that could be accommodated in half of JVM's heap size.- Parameters:
numOfRows
- maximum number of rows the RSI library is allowed to buffer.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
bufferInterval
ReactiveStreamsIngestion.Builder bufferInterval(java.time.Duration duration)
Maximum time a record can stay in RSI memory before being inserted into the database. The default value is 5 seconds. If the supplied value is less than 2 seconds, RSI defaults the interval to 2 seconds.- Parameters:
duration
- units of time in Duration.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
transformer
ReactiveStreamsIngestion.Builder transformer(java.util.function.Function<byte[],java.lang.Object> transformer)
AFunction
that produces a result from the given byte[]. The result can be a Datum[] or Object[] given that the order of column values match the pre-declared column names. The result can also be a Map of column name and value pairs. For records of sharded database, the result must be aShardRecord
.- Parameters:
transformer
- instance ofFunction
.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
table
ReactiveStreamsIngestion.Builder table(java.lang.String tableName)
Name of the database table. Redundant if the table name is supplied by callingentity(Class)
.- Parameters:
tableName
- name of the database table.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
columns
ReactiveStreamsIngestion.Builder columns(java.lang.String[] columns)
Column names of the database table. Redundant if column names are supplied by callingentity(Class)
.- Parameters:
columns
- column names of the database table.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
entity
ReactiveStreamsIngestion.Builder entity(java.lang.Class<?> entity)
The mapping class annotated withStreamEntity
andStreamField
.StreamEntity
maps to the database table name andStreamField
maps to columns in the table. Redundant if table and column names are supplied by callingtable(String)
andcolumns(String[])
.- Parameters:
entity
- the annotated class- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
doUpsert
ReactiveStreamsIngestion.Builder doUpsert()
INSERT new row or UPDATE if exists. The value of primary key is used as a match condition. NOP, if the table has no primary key. The default is INSERT. Direct Path load cannot be used for Upsert.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
useDirectPath
ReactiveStreamsIngestion.Builder useDirectPath()
Enable the Direct Path Load. The default is Conventional Path Load. The following are limitations of Direct Path Load: a) Triggers are not supported. b) Referential integrity constraints are not supported. c) Clustered tables are not supported. d) Loading of remote objects is not supported. e) LONGs must be specified last. f) SQL strings that return LOBs, objects, or collections are not supported. g) Loading of VARRAY columns is not supported. h) All partitioning columns must come before any LOBs. This is because you must determine what partition the LOB goes into before you start writing to it.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
useDirectPathParallel
ReactiveStreamsIngestion.Builder useDirectPathParallel()
Enable Direct Path PARALLEL Statement Option. Disabled by default. NOP if the Conventional Path Load is chosen.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
useDirectPathNoLog
ReactiveStreamsIngestion.Builder useDirectPathNoLog()
Enable Direct Path NOLOG Statement Option. Disabled by default. NOP if the Conventional Path Load is chosen.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
useDirectPathSkipUnusableIndexes
ReactiveStreamsIngestion.Builder useDirectPathSkipUnusableIndexes()
Enable Direct Path SKIP_UNUSABLE_INDEXES Statement Option. Disabled by default. NOP if the Conventional Path Load is chosen.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
useDirectPathSkipIndexMaintenance
ReactiveStreamsIngestion.Builder useDirectPathSkipIndexMaintenance()
Enable Direct Path SKIP_INDEX_MAINTENANCE Statement Option. Disabled by default. NOP if the Conventional Path Load is chosen.- Returns:
- this
ReactiveStreamsIngestion.Builder
.
-
build
ReactiveStreamsIngestion build() throws RSIException
Returns a RSI instance configured as specified.- Returns:
- a configured
ReactiveStreamsIngestion
. Notnull
. - Throws:
RSIException
- if unable to return aReactiveStreamsIngestion
due to problems with configuration such as missing or conflicting build parameters.
-
-