A set of parameters for GPUdb::insertRecordsFromQuery.
More...
#include <gpudb/protocol/insert_records_from_query.h>
A set of parameters for GPUdb::insertRecordsFromQuery.
Computes remote query result and inserts the result data into a new or existing table
Definition at line 19 of file insert_records_from_query.h.
◆ InsertRecordsFromQueryRequest() [1/2]
gpudb::InsertRecordsFromQueryRequest::InsertRecordsFromQueryRequest |
( |
| ) |
|
|
inline |
◆ InsertRecordsFromQueryRequest() [2/2]
gpudb::InsertRecordsFromQueryRequest::InsertRecordsFromQueryRequest |
( |
const std::string & |
tableName_, |
|
|
const std::string & |
remoteQuery_, |
|
|
const std::map< std::string, std::map< std::string, std::string > > & |
modifyColumns_, |
|
|
const std::map< std::string, std::string > & |
createTableOptions_, |
|
|
const std::map< std::string, std::string > & |
options_ |
|
) |
| |
|
inline |
Constructs an InsertRecordsFromQueryRequest object with the specified parameters.
- Parameters
-
[in] | tableName_ | Name of the table into which the data will be inserted, in [schema_name.]table_name format, using standard name resolution rules. If the table does not exist, the table will be created using either an existing type_id or the type inferred from the remote query, and the new table name will have to meet standard table naming criteria. |
[in] | remoteQuery_ | Query for which result data needs to be imported |
[in] | modifyColumns_ | Not implemented yet. The default value is an empty map. |
[in] | createTableOptions_ | Options used when creating the target table.
-
insert_records_from_query_type_id: ID of a currently registered type. The default value is ''.
-
insert_records_from_query_no_error_if_exists: If true, prevents an error from occurring if the table already exists and is of the given type. If a table with the same ID but a different type exists, it is still an error. Supported values:
The default value is insert_records_from_query_false.
-
insert_records_from_query_is_replicated: Affects the distribution scheme for the table's data. If true and the given type has no explicit shard key defined, the table will be replicated. If false, the table will be sharded according to the shard key specified in the given type_id, or randomly sharded, if no shard key is specified. Note that a type containing a shard key cannot be used to create a replicated table. Supported values:
The default value is insert_records_from_query_false.
-
insert_records_from_query_foreign_keys: Semicolon-separated list of foreign keys, of the format '(source_column_name [, ...]) references target_table_name(primary_key_column_name [, ...]) [as foreign_key_name]'.
-
insert_records_from_query_foreign_shard_key: Foreign shard key of the format 'source_column references shard_by_column from target_table(primary_key_column)'.
-
insert_records_from_query_partition_type: Partitioning scheme to use. Supported values:
-
insert_records_from_query_partition_keys: Comma-separated list of partition keys, which are the columns or column expressions by which records will be assigned to partitions defined by partition_definitions.
-
insert_records_from_query_partition_definitions: Comma-separated list of partition definitions, whose format depends on the choice of partition_type. See range partitioning, interval partitioning, list partitioning, hash partitioning, or series partitioning for example formats.
-
insert_records_from_query_is_automatic_partition: If true, a new partition will be created for values which don't fall into an existing partition. Currently only supported for list partitions. Supported values:
The default value is insert_records_from_query_false.
-
insert_records_from_query_ttl: Sets the TTL of the table specified in tableName_.
-
insert_records_from_query_chunk_size: Indicates the number of records per chunk to be used for this table.
-
insert_records_from_query_is_result_table: Indicates whether the table is a memory-only table. A result table cannot contain columns with text_search data-handling, and it will not be retained if the server is restarted. Supported values:
The default value is insert_records_from_query_false.
-
insert_records_from_query_strategy_definition: The tier strategy for the table and its columns.
The default value is an empty map. |
[in] | options_ | Optional parameters.
-
insert_records_from_query_bad_record_table_name: Optional name of a table to which records that were rejected are written. The bad-record-table has the following columns: line_number (long), line_rejected (string), error_message (string). When error handling is Abort, bad records table is not populated.
-
insert_records_from_query_bad_record_table_limit: A positive integer indicating the maximum number of records that can be written to the bad-record-table. Default value is 10000
-
insert_records_from_query_batch_size: Number of records per batch when inserting data.
-
insert_records_from_query_datasource_name: Name of an existing external data source from which table will be loaded
-
insert_records_from_query_error_handling: Specifies how errors should be handled upon insertion. Supported values:
The default value is insert_records_from_query_abort.
-
insert_records_from_query_ignore_existing_pk: Specifies the record collision error-suppression policy for inserting into a table with a primary key, only used when not in upsert mode (upsert mode is disabled when update_on_existing_pk is false). If set to true, any record being inserted that is rejected for having primary key values that match those of an existing table record will be ignored with no error generated. If false, the rejection of any record for having primary key values matching an existing record will result in an error being reported, as determined by error_handling. If the specified table does not have a primary key or if upsert mode is in effect (update_on_existing_pk is true), then this option has no effect. Supported values:
The default value is insert_records_from_query_false.
-
insert_records_from_query_ingestion_mode: Whether to do a full load, dry run, or perform a type inference on the source data. Supported values:
The default value is insert_records_from_query_full.
-
insert_records_from_query_jdbc_fetch_size: The JDBC fetch size, which determines how many rows to fetch per round trip.
-
insert_records_from_query_jdbc_session_init_statement: Executes the statement per each jdbc session before doing actual load. The default value is ''.
-
insert_records_from_query_num_splits_per_rank: Optional: number of splits for reading data per rank. Default will be external_file_reader_num_tasks. The default value is ''.
-
insert_records_from_query_num_tasks_per_rank: Optional: number of tasks for reading data per rank. Default will be external_file_reader_num_tasks
-
insert_records_from_query_primary_keys: Optional: comma separated list of column names, to set as primary keys, when not specified in the type. The default value is ''.
-
insert_records_from_query_shard_keys: Optional: comma separated list of column names, to set as primary keys, when not specified in the type. The default value is ''.
-
insert_records_from_query_subscribe: Continuously poll the data source to check for new data and load it into the table. Supported values:
The default value is insert_records_from_query_false.
-
insert_records_from_query_truncate_table: If set to true, truncates the table specified by tableName_ prior to loading the data. Supported values:
The default value is insert_records_from_query_false.
-
insert_records_from_query_remote_query: Remote SQL query from which data will be sourced
-
insert_records_from_query_remote_query_order_by: Name of column to be used for splitting the query into multiple sub-queries using ordering of given column. The default value is ''.
-
insert_records_from_query_remote_query_filter_column: Name of column to be used for splitting the query into multiple sub-queries using the data distribution of given column. The default value is ''.
-
insert_records_from_query_remote_query_increasing_column: Column on subscribed remote query result that will increase for new records (e.g., TIMESTAMP). The default value is ''.
-
insert_records_from_query_remote_query_partition_column: Alias name for remote_query_filter_column. The default value is ''.
-
insert_records_from_query_truncate_strings: If set to true, truncate string values that are longer than the column's type size. Supported values:
The default value is insert_records_from_query_false.
-
insert_records_from_query_update_on_existing_pk: Specifies the record collision policy for inserting into a table with a primary key. If set to true, any existing table record with primary key values that match those of a record being inserted will be replaced by that new record (the new data will be "upserted"). If set to false, any existing table record with primary key values that match those of a record being inserted will remain unchanged, while the new record will be rejected and the error handled as determined by ignore_existing_pk & error_handling. If the specified table does not have a primary key, then this option has no effect. Supported values:
The default value is insert_records_from_query_false.
The default value is an empty map. |
Definition at line 636 of file insert_records_from_query.h.
◆ createTableOptions
std::map<std::string, std::string> gpudb::InsertRecordsFromQueryRequest::createTableOptions |
Options used when creating the target table.
-
insert_records_from_query_type_id: ID of a currently registered type. The default value is ''.
-
insert_records_from_query_no_error_if_exists: If true, prevents an error from occurring if the table already exists and is of the given type. If a table with the same ID but a different type exists, it is still an error. Supported values:
The default value is insert_records_from_query_false.
-
insert_records_from_query_is_replicated: Affects the distribution scheme for the table's data. If true and the given type has no explicit shard key defined, the table will be replicated. If false, the table will be sharded according to the shard key specified in the given type_id, or randomly sharded, if no shard key is specified. Note that a type containing a shard key cannot be used to create a replicated table. Supported values:
The default value is insert_records_from_query_false.
-
insert_records_from_query_foreign_keys: Semicolon-separated list of foreign keys, of the format '(source_column_name [, ...]) references target_table_name(primary_key_column_name [, ...]) [as foreign_key_name]'.
-
insert_records_from_query_foreign_shard_key: Foreign shard key of the format 'source_column references shard_by_column from target_table(primary_key_column)'.
-
insert_records_from_query_partition_type: Partitioning scheme to use. Supported values:
-
insert_records_from_query_partition_keys: Comma-separated list of partition keys, which are the columns or column expressions by which records will be assigned to partitions defined by partition_definitions.
-
insert_records_from_query_partition_definitions: Comma-separated list of partition definitions, whose format depends on the choice of partition_type. See range partitioning, interval partitioning, list partitioning, hash partitioning, or series partitioning for example formats.
-
insert_records_from_query_is_automatic_partition: If true, a new partition will be created for values which don't fall into an existing partition. Currently only supported for list partitions. Supported values:
The default value is insert_records_from_query_false.
-
insert_records_from_query_ttl: Sets the TTL of the table specified in tableName.
-
insert_records_from_query_chunk_size: Indicates the number of records per chunk to be used for this table.
-
insert_records_from_query_is_result_table: Indicates whether the table is a memory-only table. A result table cannot contain columns with text_search data-handling, and it will not be retained if the server is restarted. Supported values:
The default value is insert_records_from_query_false.
-
insert_records_from_query_strategy_definition: The tier strategy for the table and its columns.
The default value is an empty map.
Definition at line 834 of file insert_records_from_query.h.
◆ modifyColumns
std::map<std::string, std::map<std::string, std::string> > gpudb::InsertRecordsFromQueryRequest::modifyColumns |
◆ options
std::map<std::string, std::string> gpudb::InsertRecordsFromQueryRequest::options |
Optional parameters.
-
insert_records_from_query_bad_record_table_name: Optional name of a table to which records that were rejected are written. The bad-record-table has the following columns: line_number (long), line_rejected (string), error_message (string). When error handling is Abort, bad records table is not populated.
-
insert_records_from_query_bad_record_table_limit: A positive integer indicating the maximum number of records that can be written to the bad-record-table. Default value is 10000
-
insert_records_from_query_batch_size: Number of records per batch when inserting data.
-
insert_records_from_query_datasource_name: Name of an existing external data source from which table will be loaded
-
insert_records_from_query_error_handling: Specifies how errors should be handled upon insertion. Supported values:
The default value is insert_records_from_query_abort.
-
insert_records_from_query_ignore_existing_pk: Specifies the record collision error-suppression policy for inserting into a table with a primary key, only used when not in upsert mode (upsert mode is disabled when update_on_existing_pk is false). If set to true, any record being inserted that is rejected for having primary key values that match those of an existing table record will be ignored with no error generated. If false, the rejection of any record for having primary key values matching an existing record will result in an error being reported, as determined by error_handling. If the specified table does not have a primary key or if upsert mode is in effect (update_on_existing_pk is true), then this option has no effect. Supported values:
The default value is insert_records_from_query_false.
-
insert_records_from_query_ingestion_mode: Whether to do a full load, dry run, or perform a type inference on the source data. Supported values:
The default value is insert_records_from_query_full.
-
insert_records_from_query_jdbc_fetch_size: The JDBC fetch size, which determines how many rows to fetch per round trip.
-
insert_records_from_query_jdbc_session_init_statement: Executes the statement per each jdbc session before doing actual load. The default value is ''.
-
insert_records_from_query_num_splits_per_rank: Optional: number of splits for reading data per rank. Default will be external_file_reader_num_tasks. The default value is ''.
-
insert_records_from_query_num_tasks_per_rank: Optional: number of tasks for reading data per rank. Default will be external_file_reader_num_tasks
-
insert_records_from_query_primary_keys: Optional: comma separated list of column names, to set as primary keys, when not specified in the type. The default value is ''.
-
insert_records_from_query_shard_keys: Optional: comma separated list of column names, to set as primary keys, when not specified in the type. The default value is ''.
-
insert_records_from_query_subscribe: Continuously poll the data source to check for new data and load it into the table. Supported values:
The default value is insert_records_from_query_false.
-
insert_records_from_query_truncate_table: If set to true, truncates the table specified by tableName prior to loading the data. Supported values:
The default value is insert_records_from_query_false.
-
insert_records_from_query_remote_query: Remote SQL query from which data will be sourced
-
insert_records_from_query_remote_query_order_by: Name of column to be used for splitting the query into multiple sub-queries using ordering of given column. The default value is ''.
-
insert_records_from_query_remote_query_filter_column: Name of column to be used for splitting the query into multiple sub-queries using the data distribution of given column. The default value is ''.
-
insert_records_from_query_remote_query_increasing_column: Column on subscribed remote query result that will increase for new records (e.g., TIMESTAMP). The default value is ''.
-
insert_records_from_query_remote_query_partition_column: Alias name for remote_query_filter_column. The default value is ''.
-
insert_records_from_query_truncate_strings: If set to true, truncate string values that are longer than the column's type size. Supported values:
The default value is insert_records_from_query_false.
-
insert_records_from_query_update_on_existing_pk: Specifies the record collision policy for inserting into a table with a primary key. If set to true, any existing table record with primary key values that match those of a record being inserted will be replaced by that new record (the new data will be "upserted"). If set to false, any existing table record with primary key values that match those of a record being inserted will remain unchanged, while the new record will be rejected and the error handled as determined by ignore_existing_pk & error_handling. If the specified table does not have a primary key, then this option has no effect. Supported values:
The default value is insert_records_from_query_false.
The default value is an empty map.
Definition at line 1070 of file insert_records_from_query.h.
◆ remoteQuery
std::string gpudb::InsertRecordsFromQueryRequest::remoteQuery |
◆ tableName
std::string gpudb::InsertRecordsFromQueryRequest::tableName |
Name of the table into which the data will be inserted, in [ schema_name. ]table_name format, using standard name resolution rules.
If the table does not exist, the table will be created using either an existing type_id or the type inferred from the remote query, and the new table name will have to meet standard table naming criteria.
Definition at line 657 of file insert_records_from_query.h.
The documentation for this struct was generated from the following file: