public class CreateProcRequest extends Object implements org.apache.avro.generic.IndexedRecord
GPUdb.createProc
.
Creates an instance (proc) of the user-defined functions (UDF) specified by the given command, options, and files, and makes it available for execution.
Modifier and Type | Class and Description |
---|---|
static class |
CreateProcRequest.ExecutionMode
A set of string constants for the
CreateProcRequest parameter
executionMode . |
static class |
CreateProcRequest.Options
A set of string constants for the
CreateProcRequest parameter
options . |
Constructor and Description |
---|
CreateProcRequest()
Constructs a CreateProcRequest object with default parameters.
|
CreateProcRequest(String procName,
String executionMode,
Map<String,ByteBuffer> files,
String command,
List<String> args,
Map<String,String> options)
Constructs a CreateProcRequest object with the specified parameters.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj) |
Object |
get(int index)
This method supports the Avro framework and is not intended to be called
directly by the user.
|
List<String> |
getArgs()
An array of command-line arguments that will be passed to
command when the proc is executed. |
static org.apache.avro.Schema |
getClassSchema()
This method supports the Avro framework and is not intended to be called
directly by the user.
|
String |
getCommand()
The command (excluding arguments) that will be invoked when the proc is
executed.
|
String |
getExecutionMode()
The execution mode of the proc.
|
Map<String,ByteBuffer> |
getFiles()
A map of the files that make up the proc.
|
Map<String,String> |
getOptions()
Optional parameters.
|
String |
getProcName()
Name of the proc to be created.
|
org.apache.avro.Schema |
getSchema()
This method supports the Avro framework and is not intended to be called
directly by the user.
|
int |
hashCode() |
void |
put(int index,
Object value)
This method supports the Avro framework and is not intended to be called
directly by the user.
|
CreateProcRequest |
setArgs(List<String> args)
An array of command-line arguments that will be passed to
command when the proc is executed. |
CreateProcRequest |
setCommand(String command)
The command (excluding arguments) that will be invoked when the proc is
executed.
|
CreateProcRequest |
setExecutionMode(String executionMode)
The execution mode of the proc.
|
CreateProcRequest |
setFiles(Map<String,ByteBuffer> files)
A map of the files that make up the proc.
|
CreateProcRequest |
setOptions(Map<String,String> options)
Optional parameters.
|
CreateProcRequest |
setProcName(String procName)
Name of the proc to be created.
|
String |
toString() |
public CreateProcRequest()
public CreateProcRequest(String procName, String executionMode, Map<String,ByteBuffer> files, String command, List<String> args, Map<String,String> options)
procName
- Name of the proc to be created. Must not be the name of
a currently existing proc.executionMode
- The execution mode of the proc.
Supported values:
DISTRIBUTED
: Input table data will be
divided into data segments that are
distributed across all nodes in the
cluster, and the proc command will be
invoked once per data segment in parallel.
Output table data from each invocation
will be saved to the same node as the
corresponding input data.
NONDISTRIBUTED
: The proc command will be
invoked only once per execution, and will
not have direct access to any tables named
as input or output table parameters in the
call to GPUdb.executeProc
. It will, however, be
able to access the database using native
API calls.
DISTRIBUTED
.files
- A map of the files that make up the proc. The keys of the
map are file names, and the values are the binary contents
of the files. The file names may include subdirectory
names (e.g. 'subdir/file') but must not resolve to a
directory above the root for the proc. Files may be
loaded from existing files in KiFS. Those file names
should be prefixed with the uri kifs:// and the values in
the map should be empty. The default value is an empty
Map
.command
- The command (excluding arguments) that will be invoked
when the proc is executed. It will be invoked from the
directory containing the proc files
and may be
any command that can be resolved from that directory. It
need not refer to a file actually in that directory; for
example, it could be 'java' if the proc is a Java
application; however, any necessary external programs
must be preinstalled on every database node. If the
command refers to a file in that directory, it must be
preceded with './' as per Linux convention. If not
specified, and exactly one file is provided in files
, that file will be invoked. The default value is
''.args
- An array of command-line arguments that will be passed to
command
when the proc is executed. The default
value is an empty List
.options
- Optional parameters.
MAX_CONCURRENCY_PER_NODE
: The maximum number of
concurrent instances of the proc that will be
executed per node. 0 allows unlimited
concurrency. The default value is '0'.
SET_ENVIRONMENT
:
A python environment to use when executing the
proc. Must be an existing environment, else an
error will be returned. The default value is ''.
Map
.public static org.apache.avro.Schema getClassSchema()
public String getProcName()
procName
.public CreateProcRequest setProcName(String procName)
procName
- The new value for procName
.this
to mimic the builder pattern.public String getExecutionMode()
DISTRIBUTED
: Input table data
will be divided into data segments that are distributed across
all nodes in the cluster, and the proc command will be invoked
once per data segment in parallel. Output table data from each
invocation will be saved to the same node as the corresponding
input data.
NONDISTRIBUTED
: The proc
command will be invoked only once per execution, and will not
have direct access to any tables named as input or output table
parameters in the call to GPUdb.executeProc
. It will, however, be able to access the
database using native API calls.
DISTRIBUTED
.executionMode
.public CreateProcRequest setExecutionMode(String executionMode)
DISTRIBUTED
: Input table data
will be divided into data segments that are distributed across
all nodes in the cluster, and the proc command will be invoked
once per data segment in parallel. Output table data from each
invocation will be saved to the same node as the corresponding
input data.
NONDISTRIBUTED
: The proc
command will be invoked only once per execution, and will not
have direct access to any tables named as input or output table
parameters in the call to GPUdb.executeProc
. It will, however, be able to access the
database using native API calls.
DISTRIBUTED
.executionMode
- The new value for executionMode
.this
to mimic the builder pattern.public Map<String,ByteBuffer> getFiles()
Files may be loaded from existing files in KiFS. Those file names should
be prefixed with the uri kifs:// and the values in the map should be
empty. The default value is an empty Map
.
files
.public CreateProcRequest setFiles(Map<String,ByteBuffer> files)
Files may be loaded from existing files in KiFS. Those file names should
be prefixed with the uri kifs:// and the values in the map should be
empty. The default value is an empty Map
.
files
- The new value for files
.this
to mimic the builder pattern.public String getCommand()
files
and may be any command that can be resolved
from that directory. It need not refer to a file actually in that
directory; for example, it could be 'java' if the proc is a Java
application; however, any necessary external programs must be
preinstalled on every database node. If the command refers to a file in
that directory, it must be preceded with './' as per Linux convention.
If not specified, and exactly one file is provided in files
, that file will be invoked. The default value is ''.command
.public CreateProcRequest setCommand(String command)
files
and may be any command that can be resolved
from that directory. It need not refer to a file actually in that
directory; for example, it could be 'java' if the proc is a Java
application; however, any necessary external programs must be
preinstalled on every database node. If the command refers to a file in
that directory, it must be preceded with './' as per Linux convention.
If not specified, and exactly one file is provided in files
, that file will be invoked. The default value is ''.command
- The new value for command
.this
to mimic the builder pattern.public List<String> getArgs()
command
when the proc is executed. The default value is
an empty List
.args
.public CreateProcRequest setArgs(List<String> args)
command
when the proc is executed. The default value is
an empty List
.args
- The new value for args
.this
to mimic the builder pattern.public Map<String,String> getOptions()
MAX_CONCURRENCY_PER_NODE
: The maximum number of concurrent
instances of the proc that will be executed per node. 0 allows
unlimited concurrency. The default value is '0'.
SET_ENVIRONMENT
: A python
environment to use when executing the proc. Must be an existing
environment, else an error will be returned. The default value
is ''.
Map
.options
.public CreateProcRequest setOptions(Map<String,String> options)
MAX_CONCURRENCY_PER_NODE
: The maximum number of concurrent
instances of the proc that will be executed per node. 0 allows
unlimited concurrency. The default value is '0'.
SET_ENVIRONMENT
: A python
environment to use when executing the proc. Must be an existing
environment, else an error will be returned. The default value
is ''.
Map
.options
- The new value for options
.this
to mimic the builder pattern.public org.apache.avro.Schema getSchema()
getSchema
in interface org.apache.avro.generic.GenericContainer
public Object get(int index)
get
in interface org.apache.avro.generic.IndexedRecord
index
- the position of the field to getIndexOutOfBoundsException
public void put(int index, Object value)
put
in interface org.apache.avro.generic.IndexedRecord
index
- the position of the field to setvalue
- the value to setIndexOutOfBoundsException
Copyright © 2025. All rights reserved.