#[non_exhaustive]pub struct S3Settings {Show 41 fields
pub service_access_role_arn: Option<String>,
pub external_table_definition: Option<String>,
pub csv_row_delimiter: Option<String>,
pub csv_delimiter: Option<String>,
pub bucket_folder: Option<String>,
pub bucket_name: Option<String>,
pub compression_type: Option<CompressionTypeValue>,
pub encryption_mode: Option<EncryptionModeValue>,
pub server_side_encryption_kms_key_id: Option<String>,
pub data_format: Option<DataFormatValue>,
pub encoding_type: Option<EncodingTypeValue>,
pub dict_page_size_limit: Option<i32>,
pub row_group_length: Option<i32>,
pub data_page_size: Option<i32>,
pub parquet_version: Option<ParquetVersionValue>,
pub enable_statistics: Option<bool>,
pub include_op_for_full_load: Option<bool>,
pub cdc_inserts_only: Option<bool>,
pub timestamp_column_name: Option<String>,
pub parquet_timestamp_in_millisecond: Option<bool>,
pub cdc_inserts_and_updates: Option<bool>,
pub date_partition_enabled: Option<bool>,
pub date_partition_sequence: Option<DatePartitionSequenceValue>,
pub date_partition_delimiter: Option<DatePartitionDelimiterValue>,
pub use_csv_no_sup_value: Option<bool>,
pub csv_no_sup_value: Option<String>,
pub preserve_transactions: Option<bool>,
pub cdc_path: Option<String>,
pub use_task_start_time_for_full_load_timestamp: Option<bool>,
pub canned_acl_for_objects: Option<CannedAclForObjectsValue>,
pub add_column_name: Option<bool>,
pub cdc_max_batch_interval: Option<i32>,
pub cdc_min_file_size: Option<i32>,
pub csv_null_value: Option<String>,
pub ignore_header_rows: Option<i32>,
pub max_file_size: Option<i32>,
pub rfc4180: Option<bool>,
pub date_partition_timezone: Option<String>,
pub add_trailing_padding_character: Option<bool>,
pub expected_bucket_owner: Option<String>,
pub glue_catalog_generation: Option<bool>,
}
Expand description
Settings for exporting data to Amazon S3.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.service_access_role_arn: Option<String>
The Amazon Resource Name (ARN) used by the service to access the IAM role. The role must allow the iam:PassRole
action. It is a required parameter that enables DMS to write and read objects from an S3 bucket.
external_table_definition: Option<String>
Specifies how tables are defined in the S3 source files only.
csv_row_delimiter: Option<String>
The delimiter used to separate rows in the .csv file for both source and target. The default is a carriage return (\n
).
csv_delimiter: Option<String>
The delimiter used to separate columns in the .csv file for both source and target. The default is a comma.
bucket_folder: Option<String>
An optional parameter to set a folder name in the S3 bucket. If provided, tables are created in the path bucketFolder/schema_name/table_name/
. If this parameter isn't specified, then the path used is schema_name/table_name/
.
bucket_name: Option<String>
The name of the S3 bucket.
compression_type: Option<CompressionTypeValue>
An optional parameter to use GZIP to compress the target files. Set to GZIP to compress the target files. Either set this parameter to NONE (the default) or don't use it to leave the files uncompressed. This parameter applies to both .csv and .parquet file formats.
encryption_mode: Option<EncryptionModeValue>
The type of server-side encryption that you want to use for your data. This encryption type is part of the endpoint settings or the extra connections attributes for Amazon S3. You can choose either SSE_S3
(the default) or SSE_KMS
.
For the ModifyEndpoint
operation, you can change the existing value of the EncryptionMode
parameter from SSE_KMS
to SSE_S3
. But you can’t change the existing value from SSE_S3
to SSE_KMS
.
To use SSE_S3
, you need an Identity and Access Management (IAM) role with permission to allow "arn:aws:s3:::dms-*"
to use the following actions:
-
s3:CreateBucket
-
s3:ListBucket
-
s3:DeleteBucket
-
s3:GetBucketLocation
-
s3:GetObject
-
s3:PutObject
-
s3:DeleteObject
-
s3:GetObjectVersion
-
s3:GetBucketPolicy
-
s3:PutBucketPolicy
-
s3:DeleteBucketPolicy
server_side_encryption_kms_key_id: Option<String>
If you are using SSE_KMS
for the EncryptionMode
, provide the KMS key ID. The key that you use needs an attached policy that enables Identity and Access Management (IAM) user permissions and allows use of the key.
Here is a CLI example: aws dms create-endpoint --endpoint-identifier value --endpoint-type target --engine-name s3 --s3-settings ServiceAccessRoleArn=value,BucketFolder=value,BucketName=value,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=value
data_format: Option<DataFormatValue>
The format of the data that you want to use for output. You can choose one of the following:
-
csv
: This is a row-based file format with comma-separated values (.csv). -
parquet
: Apache Parquet (.parquet) is a columnar storage file format that features efficient compression and provides faster query response.
encoding_type: Option<EncodingTypeValue>
The type of encoding you are using:
-
RLE_DICTIONARY
uses a combination of bit-packing and run-length encoding to store repeated values more efficiently. This is the default. -
PLAIN
doesn't use encoding at all. Values are stored as they are. -
PLAIN_DICTIONARY
builds a dictionary of the values encountered in a given column. The dictionary is stored in a dictionary page for each column chunk.
dict_page_size_limit: Option<i32>
The maximum size of an encoded dictionary page of a column. If the dictionary page exceeds this, this column is stored using an encoding type of PLAIN
. This parameter defaults to 1024 * 1024 bytes (1 MiB), the maximum size of a dictionary page before it reverts to PLAIN
encoding. This size is used for .parquet file format only.
row_group_length: Option<i32>
The number of rows in a row group. A smaller row group size provides faster reads. But as the number of row groups grows, the slower writes become. This parameter defaults to 10,000 rows. This number is used for .parquet file format only.
If you choose a value larger than the maximum, RowGroupLength
is set to the max row group length in bytes (64 * 1024 * 1024).
data_page_size: Option<i32>
The size of one data page in bytes. This parameter defaults to 1024 * 1024 bytes (1 MiB). This number is used for .parquet file format only.
parquet_version: Option<ParquetVersionValue>
The version of the Apache Parquet format that you want to use: parquet_1_0
(the default) or parquet_2_0
.
enable_statistics: Option<bool>
A value that enables statistics for Parquet pages and row groups. Choose true
to enable statistics, false
to disable. Statistics include NULL
, DISTINCT
, MAX
, and MIN
values. This parameter defaults to true
. This value is used for .parquet file format only.
include_op_for_full_load: Option<bool>
A value that enables a full load to write INSERT operations to the comma-separated value (.csv) or .parquet output files only to indicate how the rows were added to the source database.
DMS supports the IncludeOpForFullLoad
parameter in versions 3.1.4 and later.
DMS supports the use of the .parquet files with the IncludeOpForFullLoad
parameter in versions 3.4.7 and later.
For full load, records can only be inserted. By default (the false
setting), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database. If IncludeOpForFullLoad
is set to true
or y
, the INSERT is recorded as an I annotation in the first field of the .csv file. This allows the format of your target records from a full load to be consistent with the target records from a CDC load.
This setting works together with the CdcInsertsOnly
and the CdcInsertsAndUpdates
parameters for output to .csv files only. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the Database Migration Service User Guide..
cdc_inserts_only: Option<bool>
A value that enables a change data capture (CDC) load to write only INSERT operations to .csv or columnar storage (.parquet) output files. By default (the false
setting), the first field in a .csv or .parquet record contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate whether the row was inserted, updated, or deleted at the source database for a CDC load to the target.
If CdcInsertsOnly
is set to true
or y
, only INSERTs from the source database are migrated to the .csv or .parquet file. For .csv format only, how these INSERTs are recorded depends on the value of IncludeOpForFullLoad
. If IncludeOpForFullLoad
is set to true
, the first field of every CDC record is set to I to indicate the INSERT operation at the source. If IncludeOpForFullLoad
is set to false
, every CDC record is written without a first field to indicate the INSERT operation at the source. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the Database Migration Service User Guide..
DMS supports the interaction described preceding between the CdcInsertsOnly
and IncludeOpForFullLoad
parameters in versions 3.1.4 and later.
CdcInsertsOnly
and CdcInsertsAndUpdates
can't both be set to true
for the same endpoint. Set either CdcInsertsOnly
or CdcInsertsAndUpdates
to true
for the same endpoint, but not both.
timestamp_column_name: Option<String>
A value that when nonblank causes DMS to add a column with timestamp information to the endpoint data for an Amazon S3 target.
DMS supports the TimestampColumnName
parameter in versions 3.1.4 and later.
DMS includes an additional STRING
column in the .csv or .parquet object files of your migrated data when you set TimestampColumnName
to a nonblank value.
For a full load, each row of this timestamp column contains a timestamp for when the data was transferred from the source to the target by DMS.
For a change data capture (CDC) load, each row of the timestamp column contains the timestamp for the commit of that row in the source database.
The string format for this timestamp column value is yyyy-MM-dd HH:mm:ss.SSSSSS
. By default, the precision of this value is in microseconds. For a CDC load, the rounding of the precision depends on the commit timestamp supported by DMS for the source database.
When the AddColumnName
parameter is set to true
, DMS also includes a name for the timestamp column that you set with TimestampColumnName
.
parquet_timestamp_in_millisecond: Option<bool>
A value that specifies the precision of any TIMESTAMP
column values that are written to an Amazon S3 object file in .parquet format.
DMS supports the ParquetTimestampInMillisecond
parameter in versions 3.1.4 and later.
When ParquetTimestampInMillisecond
is set to true
or y
, DMS writes all TIMESTAMP
columns in a .parquet formatted file with millisecond precision. Otherwise, DMS writes them with microsecond precision.
Currently, Amazon Athena and Glue can handle only millisecond precision for TIMESTAMP
values. Set this parameter to true
for S3 endpoint object files that are .parquet formatted only if you plan to query or process the data with Athena or Glue.
DMS writes any TIMESTAMP
column values written to an S3 file in .csv format with microsecond precision.
Setting ParquetTimestampInMillisecond
has no effect on the string format of the timestamp column value that is inserted by setting the TimestampColumnName
parameter.
cdc_inserts_and_updates: Option<bool>
A value that enables a change data capture (CDC) load to write INSERT and UPDATE operations to .csv or .parquet (columnar storage) output files. The default setting is false
, but when CdcInsertsAndUpdates
is set to true
or y
, only INSERTs and UPDATEs from the source database are migrated to the .csv or .parquet file.
DMS supports the use of the .parquet files in versions 3.4.7 and later.
How these INSERTs and UPDATEs are recorded depends on the value of the IncludeOpForFullLoad
parameter. If IncludeOpForFullLoad
is set to true
, the first field of every CDC record is set to either I
or U
to indicate INSERT and UPDATE operations at the source. But if IncludeOpForFullLoad
is set to false
, CDC records are written without an indication of INSERT or UPDATE operations at the source. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the Database Migration Service User Guide..
DMS supports the use of the CdcInsertsAndUpdates
parameter in versions 3.3.1 and later.
CdcInsertsOnly
and CdcInsertsAndUpdates
can't both be set to true
for the same endpoint. Set either CdcInsertsOnly
or CdcInsertsAndUpdates
to true
for the same endpoint, but not both.
date_partition_enabled: Option<bool>
When set to true
, this parameter partitions S3 bucket folders based on transaction commit dates. The default value is false
. For more information about date-based folder partitioning, see Using date-based folder partitioning.
date_partition_sequence: Option<DatePartitionSequenceValue>
Identifies the sequence of the date format to use during folder partitioning. The default value is YYYYMMDD
. Use this parameter when DatePartitionedEnabled
is set to true
.
date_partition_delimiter: Option<DatePartitionDelimiterValue>
Specifies a date separating delimiter to use during folder partitioning. The default value is SLASH
. Use this parameter when DatePartitionedEnabled
is set to true
.
use_csv_no_sup_value: Option<bool>
This setting applies if the S3 output files during a change data capture (CDC) load are written in .csv format. If set to true
for columns not included in the supplemental log, DMS uses the value specified by CsvNoSupValue
. If not set or set to false
, DMS uses the null value for these columns.
This setting is supported in DMS versions 3.4.1 and later.
csv_no_sup_value: Option<String>
This setting only applies if your Amazon S3 output files during a change data capture (CDC) load are written in .csv format. If UseCsvNoSupValue
is set to true, specify a string value that you want DMS to use for all columns not included in the supplemental log. If you do not specify a string value, DMS uses the null value for these columns regardless of the UseCsvNoSupValue
setting.
This setting is supported in DMS versions 3.4.1 and later.
preserve_transactions: Option<bool>
If set to true
, DMS saves the transaction order for a change data capture (CDC) load on the Amazon S3 target specified by CdcPath
. For more information, see Capturing data changes (CDC) including transaction order on the S3 target.
This setting is supported in DMS versions 3.4.2 and later.
cdc_path: Option<String>
Specifies the folder path of CDC files. For an S3 source, this setting is required if a task captures change data; otherwise, it's optional. If CdcPath
is set, DMS reads CDC files from this path and replicates the data changes to the target endpoint. For an S3 target if you set PreserveTransactions
to true
, DMS verifies that you have set this parameter to a folder path on your S3 target where DMS can save the transaction order for the CDC load. DMS creates this CDC folder path in either your S3 target working directory or the S3 target location specified by BucketFolder
and BucketName
.
For example, if you specify CdcPath
as MyChangedData
, and you specify BucketName
as MyTargetBucket
but do not specify BucketFolder
, DMS creates the CDC folder path following: MyTargetBucket/MyChangedData
.
If you specify the same CdcPath
, and you specify BucketName
as MyTargetBucket
and BucketFolder
as MyTargetData
, DMS creates the CDC folder path following: MyTargetBucket/MyTargetData/MyChangedData
.
For more information on CDC including transaction order on an S3 target, see Capturing data changes (CDC) including transaction order on the S3 target.
This setting is supported in DMS versions 3.4.2 and later.
use_task_start_time_for_full_load_timestamp: Option<bool>
When set to true, this parameter uses the task start time as the timestamp column value instead of the time data is written to target. For full load, when useTaskStartTimeForFullLoadTimestamp
is set to true
, each row of the timestamp column contains the task start time. For CDC loads, each row of the timestamp column contains the transaction commit time.
When useTaskStartTimeForFullLoadTimestamp
is set to false
, the full load timestamp in the timestamp column increments with the time data arrives at the target.
canned_acl_for_objects: Option<CannedAclForObjectsValue>
A value that enables DMS to specify a predefined (canned) access control list for objects created in an Amazon S3 bucket as .csv or .parquet files. For more information about Amazon S3 canned ACLs, see Canned ACL in the Amazon S3 Developer Guide.
The default value is NONE. Valid values include NONE, PRIVATE, PUBLIC_READ, PUBLIC_READ_WRITE, AUTHENTICATED_READ, AWS_EXEC_READ, BUCKET_OWNER_READ, and BUCKET_OWNER_FULL_CONTROL.
add_column_name: Option<bool>
An optional parameter that, when set to true
or y
, you can use to add column name information to the .csv output file.
The default value is false
. Valid values are true
, false
, y
, and n
.
cdc_max_batch_interval: Option<i32>
Maximum length of the interval, defined in seconds, after which to output a file to Amazon S3.
When CdcMaxBatchInterval
and CdcMinFileSize
are both specified, the file write is triggered by whichever parameter condition is met first within an DMS CloudFormation template.
The default value is 60 seconds.
cdc_min_file_size: Option<i32>
Minimum file size, defined in kilobytes, to reach for a file output to Amazon S3.
When CdcMinFileSize
and CdcMaxBatchInterval
are both specified, the file write is triggered by whichever parameter condition is met first within an DMS CloudFormation template.
The default value is 32 MB.
csv_null_value: Option<String>
An optional parameter that specifies how DMS treats null values. While handling the null value, you can use this parameter to pass a user-defined string as null when writing to the target. For example, when target columns are nullable, you can use this option to differentiate between the empty string value and the null value. So, if you set this parameter value to the empty string ("" or ''), DMS treats the empty string as the null value instead of NULL
.
The default value is NULL
. Valid values include any valid string.
ignore_header_rows: Option<i32>
When this value is set to 1, DMS ignores the first row header in a .csv file. A value of 1 turns on the feature; a value of 0 turns off the feature.
The default is 0.
max_file_size: Option<i32>
A value that specifies the maximum size (in KB) of any .csv file to be created while migrating to an S3 target during full load.
The default value is 1,048,576 KB (1 GB). Valid values include 1 to 1,048,576.
rfc4180: Option<bool>
For an S3 source, when this value is set to true
or y
, each leading double quotation mark has to be followed by an ending double quotation mark. This formatting complies with RFC 4180. When this value is set to false
or n
, string literals are copied to the target as is. In this case, a delimiter (row or column) signals the end of the field. Thus, you can't use a delimiter as part of the string, because it signals the end of the value.
For an S3 target, an optional parameter used to set behavior to comply with RFC 4180 for data migrated to Amazon S3 using .csv file format only. When this value is set to true
or y
using Amazon S3 as a target, if the data has quotation marks or newline characters in it, DMS encloses the entire column with an additional pair of double quotation marks ("). Every quotation mark within the data is repeated twice.
The default value is true
. Valid values include true
, false
, y
, and n
.
date_partition_timezone: Option<String>
When creating an S3 target endpoint, set DatePartitionTimezone
to convert the current UTC time into a specified time zone. The conversion occurs when a date partition folder is created and a CDC filename is generated. The time zone format is Area/Location. Use this parameter when DatePartitionedEnabled
is set to true
, as shown in the following example.
s3-settings='{"DatePartitionEnabled": true, "DatePartitionSequence": "YYYYMMDDHH", "DatePartitionDelimiter": "SLASH", "DatePartitionTimezone":"Asia/Seoul", "BucketName": "dms-nattarat-test"}'
add_trailing_padding_character: Option<bool>
Use the S3 target endpoint setting AddTrailingPaddingCharacter
to add padding on string data. The default value is false
.
expected_bucket_owner: Option<String>
To specify a bucket owner and prevent sniping, you can use the ExpectedBucketOwner
endpoint setting.
Example: --s3-settings='{"ExpectedBucketOwner": "AWS_Account_ID"}'
When you make a request to test a connection or perform a migration, S3 checks the account ID of the bucket owner against the specified parameter.
glue_catalog_generation: Option<bool>
When true, allows Glue to catalog your S3 bucket. Creating an Glue catalog lets you use Athena to query your data.
Implementations§
Source§impl S3Settings
impl S3Settings
Sourcepub fn service_access_role_arn(&self) -> Option<&str>
pub fn service_access_role_arn(&self) -> Option<&str>
The Amazon Resource Name (ARN) used by the service to access the IAM role. The role must allow the iam:PassRole
action. It is a required parameter that enables DMS to write and read objects from an S3 bucket.
Sourcepub fn external_table_definition(&self) -> Option<&str>
pub fn external_table_definition(&self) -> Option<&str>
Specifies how tables are defined in the S3 source files only.
Sourcepub fn csv_row_delimiter(&self) -> Option<&str>
pub fn csv_row_delimiter(&self) -> Option<&str>
The delimiter used to separate rows in the .csv file for both source and target. The default is a carriage return (\n
).
Sourcepub fn csv_delimiter(&self) -> Option<&str>
pub fn csv_delimiter(&self) -> Option<&str>
The delimiter used to separate columns in the .csv file for both source and target. The default is a comma.
Sourcepub fn bucket_folder(&self) -> Option<&str>
pub fn bucket_folder(&self) -> Option<&str>
An optional parameter to set a folder name in the S3 bucket. If provided, tables are created in the path bucketFolder/schema_name/table_name/
. If this parameter isn't specified, then the path used is schema_name/table_name/
.
Sourcepub fn bucket_name(&self) -> Option<&str>
pub fn bucket_name(&self) -> Option<&str>
The name of the S3 bucket.
Sourcepub fn compression_type(&self) -> Option<&CompressionTypeValue>
pub fn compression_type(&self) -> Option<&CompressionTypeValue>
An optional parameter to use GZIP to compress the target files. Set to GZIP to compress the target files. Either set this parameter to NONE (the default) or don't use it to leave the files uncompressed. This parameter applies to both .csv and .parquet file formats.
Sourcepub fn encryption_mode(&self) -> Option<&EncryptionModeValue>
pub fn encryption_mode(&self) -> Option<&EncryptionModeValue>
The type of server-side encryption that you want to use for your data. This encryption type is part of the endpoint settings or the extra connections attributes for Amazon S3. You can choose either SSE_S3
(the default) or SSE_KMS
.
For the ModifyEndpoint
operation, you can change the existing value of the EncryptionMode
parameter from SSE_KMS
to SSE_S3
. But you can’t change the existing value from SSE_S3
to SSE_KMS
.
To use SSE_S3
, you need an Identity and Access Management (IAM) role with permission to allow "arn:aws:s3:::dms-*"
to use the following actions:
-
s3:CreateBucket
-
s3:ListBucket
-
s3:DeleteBucket
-
s3:GetBucketLocation
-
s3:GetObject
-
s3:PutObject
-
s3:DeleteObject
-
s3:GetObjectVersion
-
s3:GetBucketPolicy
-
s3:PutBucketPolicy
-
s3:DeleteBucketPolicy
Sourcepub fn server_side_encryption_kms_key_id(&self) -> Option<&str>
pub fn server_side_encryption_kms_key_id(&self) -> Option<&str>
If you are using SSE_KMS
for the EncryptionMode
, provide the KMS key ID. The key that you use needs an attached policy that enables Identity and Access Management (IAM) user permissions and allows use of the key.
Here is a CLI example: aws dms create-endpoint --endpoint-identifier value --endpoint-type target --engine-name s3 --s3-settings ServiceAccessRoleArn=value,BucketFolder=value,BucketName=value,EncryptionMode=SSE_KMS,ServerSideEncryptionKmsKeyId=value
Sourcepub fn data_format(&self) -> Option<&DataFormatValue>
pub fn data_format(&self) -> Option<&DataFormatValue>
The format of the data that you want to use for output. You can choose one of the following:
-
csv
: This is a row-based file format with comma-separated values (.csv). -
parquet
: Apache Parquet (.parquet) is a columnar storage file format that features efficient compression and provides faster query response.
Sourcepub fn encoding_type(&self) -> Option<&EncodingTypeValue>
pub fn encoding_type(&self) -> Option<&EncodingTypeValue>
The type of encoding you are using:
-
RLE_DICTIONARY
uses a combination of bit-packing and run-length encoding to store repeated values more efficiently. This is the default. -
PLAIN
doesn't use encoding at all. Values are stored as they are. -
PLAIN_DICTIONARY
builds a dictionary of the values encountered in a given column. The dictionary is stored in a dictionary page for each column chunk.
Sourcepub fn dict_page_size_limit(&self) -> Option<i32>
pub fn dict_page_size_limit(&self) -> Option<i32>
The maximum size of an encoded dictionary page of a column. If the dictionary page exceeds this, this column is stored using an encoding type of PLAIN
. This parameter defaults to 1024 * 1024 bytes (1 MiB), the maximum size of a dictionary page before it reverts to PLAIN
encoding. This size is used for .parquet file format only.
Sourcepub fn row_group_length(&self) -> Option<i32>
pub fn row_group_length(&self) -> Option<i32>
The number of rows in a row group. A smaller row group size provides faster reads. But as the number of row groups grows, the slower writes become. This parameter defaults to 10,000 rows. This number is used for .parquet file format only.
If you choose a value larger than the maximum, RowGroupLength
is set to the max row group length in bytes (64 * 1024 * 1024).
Sourcepub fn data_page_size(&self) -> Option<i32>
pub fn data_page_size(&self) -> Option<i32>
The size of one data page in bytes. This parameter defaults to 1024 * 1024 bytes (1 MiB). This number is used for .parquet file format only.
Sourcepub fn parquet_version(&self) -> Option<&ParquetVersionValue>
pub fn parquet_version(&self) -> Option<&ParquetVersionValue>
The version of the Apache Parquet format that you want to use: parquet_1_0
(the default) or parquet_2_0
.
Sourcepub fn enable_statistics(&self) -> Option<bool>
pub fn enable_statistics(&self) -> Option<bool>
A value that enables statistics for Parquet pages and row groups. Choose true
to enable statistics, false
to disable. Statistics include NULL
, DISTINCT
, MAX
, and MIN
values. This parameter defaults to true
. This value is used for .parquet file format only.
Sourcepub fn include_op_for_full_load(&self) -> Option<bool>
pub fn include_op_for_full_load(&self) -> Option<bool>
A value that enables a full load to write INSERT operations to the comma-separated value (.csv) or .parquet output files only to indicate how the rows were added to the source database.
DMS supports the IncludeOpForFullLoad
parameter in versions 3.1.4 and later.
DMS supports the use of the .parquet files with the IncludeOpForFullLoad
parameter in versions 3.4.7 and later.
For full load, records can only be inserted. By default (the false
setting), no information is recorded in these output files for a full load to indicate that the rows were inserted at the source database. If IncludeOpForFullLoad
is set to true
or y
, the INSERT is recorded as an I annotation in the first field of the .csv file. This allows the format of your target records from a full load to be consistent with the target records from a CDC load.
This setting works together with the CdcInsertsOnly
and the CdcInsertsAndUpdates
parameters for output to .csv files only. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the Database Migration Service User Guide..
Sourcepub fn cdc_inserts_only(&self) -> Option<bool>
pub fn cdc_inserts_only(&self) -> Option<bool>
A value that enables a change data capture (CDC) load to write only INSERT operations to .csv or columnar storage (.parquet) output files. By default (the false
setting), the first field in a .csv or .parquet record contains the letter I (INSERT), U (UPDATE), or D (DELETE). These values indicate whether the row was inserted, updated, or deleted at the source database for a CDC load to the target.
If CdcInsertsOnly
is set to true
or y
, only INSERTs from the source database are migrated to the .csv or .parquet file. For .csv format only, how these INSERTs are recorded depends on the value of IncludeOpForFullLoad
. If IncludeOpForFullLoad
is set to true
, the first field of every CDC record is set to I to indicate the INSERT operation at the source. If IncludeOpForFullLoad
is set to false
, every CDC record is written without a first field to indicate the INSERT operation at the source. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the Database Migration Service User Guide..
DMS supports the interaction described preceding between the CdcInsertsOnly
and IncludeOpForFullLoad
parameters in versions 3.1.4 and later.
CdcInsertsOnly
and CdcInsertsAndUpdates
can't both be set to true
for the same endpoint. Set either CdcInsertsOnly
or CdcInsertsAndUpdates
to true
for the same endpoint, but not both.
Sourcepub fn timestamp_column_name(&self) -> Option<&str>
pub fn timestamp_column_name(&self) -> Option<&str>
A value that when nonblank causes DMS to add a column with timestamp information to the endpoint data for an Amazon S3 target.
DMS supports the TimestampColumnName
parameter in versions 3.1.4 and later.
DMS includes an additional STRING
column in the .csv or .parquet object files of your migrated data when you set TimestampColumnName
to a nonblank value.
For a full load, each row of this timestamp column contains a timestamp for when the data was transferred from the source to the target by DMS.
For a change data capture (CDC) load, each row of the timestamp column contains the timestamp for the commit of that row in the source database.
The string format for this timestamp column value is yyyy-MM-dd HH:mm:ss.SSSSSS
. By default, the precision of this value is in microseconds. For a CDC load, the rounding of the precision depends on the commit timestamp supported by DMS for the source database.
When the AddColumnName
parameter is set to true
, DMS also includes a name for the timestamp column that you set with TimestampColumnName
.
Sourcepub fn parquet_timestamp_in_millisecond(&self) -> Option<bool>
pub fn parquet_timestamp_in_millisecond(&self) -> Option<bool>
A value that specifies the precision of any TIMESTAMP
column values that are written to an Amazon S3 object file in .parquet format.
DMS supports the ParquetTimestampInMillisecond
parameter in versions 3.1.4 and later.
When ParquetTimestampInMillisecond
is set to true
or y
, DMS writes all TIMESTAMP
columns in a .parquet formatted file with millisecond precision. Otherwise, DMS writes them with microsecond precision.
Currently, Amazon Athena and Glue can handle only millisecond precision for TIMESTAMP
values. Set this parameter to true
for S3 endpoint object files that are .parquet formatted only if you plan to query or process the data with Athena or Glue.
DMS writes any TIMESTAMP
column values written to an S3 file in .csv format with microsecond precision.
Setting ParquetTimestampInMillisecond
has no effect on the string format of the timestamp column value that is inserted by setting the TimestampColumnName
parameter.
Sourcepub fn cdc_inserts_and_updates(&self) -> Option<bool>
pub fn cdc_inserts_and_updates(&self) -> Option<bool>
A value that enables a change data capture (CDC) load to write INSERT and UPDATE operations to .csv or .parquet (columnar storage) output files. The default setting is false
, but when CdcInsertsAndUpdates
is set to true
or y
, only INSERTs and UPDATEs from the source database are migrated to the .csv or .parquet file.
DMS supports the use of the .parquet files in versions 3.4.7 and later.
How these INSERTs and UPDATEs are recorded depends on the value of the IncludeOpForFullLoad
parameter. If IncludeOpForFullLoad
is set to true
, the first field of every CDC record is set to either I
or U
to indicate INSERT and UPDATE operations at the source. But if IncludeOpForFullLoad
is set to false
, CDC records are written without an indication of INSERT or UPDATE operations at the source. For more information about how these settings work together, see Indicating Source DB Operations in Migrated S3 Data in the Database Migration Service User Guide..
DMS supports the use of the CdcInsertsAndUpdates
parameter in versions 3.3.1 and later.
CdcInsertsOnly
and CdcInsertsAndUpdates
can't both be set to true
for the same endpoint. Set either CdcInsertsOnly
or CdcInsertsAndUpdates
to true
for the same endpoint, but not both.
Sourcepub fn date_partition_enabled(&self) -> Option<bool>
pub fn date_partition_enabled(&self) -> Option<bool>
When set to true
, this parameter partitions S3 bucket folders based on transaction commit dates. The default value is false
. For more information about date-based folder partitioning, see Using date-based folder partitioning.
Sourcepub fn date_partition_sequence(&self) -> Option<&DatePartitionSequenceValue>
pub fn date_partition_sequence(&self) -> Option<&DatePartitionSequenceValue>
Identifies the sequence of the date format to use during folder partitioning. The default value is YYYYMMDD
. Use this parameter when DatePartitionedEnabled
is set to true
.
Sourcepub fn date_partition_delimiter(&self) -> Option<&DatePartitionDelimiterValue>
pub fn date_partition_delimiter(&self) -> Option<&DatePartitionDelimiterValue>
Specifies a date separating delimiter to use during folder partitioning. The default value is SLASH
. Use this parameter when DatePartitionedEnabled
is set to true
.
Sourcepub fn use_csv_no_sup_value(&self) -> Option<bool>
pub fn use_csv_no_sup_value(&self) -> Option<bool>
This setting applies if the S3 output files during a change data capture (CDC) load are written in .csv format. If set to true
for columns not included in the supplemental log, DMS uses the value specified by CsvNoSupValue
. If not set or set to false
, DMS uses the null value for these columns.
This setting is supported in DMS versions 3.4.1 and later.
Sourcepub fn csv_no_sup_value(&self) -> Option<&str>
pub fn csv_no_sup_value(&self) -> Option<&str>
This setting only applies if your Amazon S3 output files during a change data capture (CDC) load are written in .csv format. If UseCsvNoSupValue
is set to true, specify a string value that you want DMS to use for all columns not included in the supplemental log. If you do not specify a string value, DMS uses the null value for these columns regardless of the UseCsvNoSupValue
setting.
This setting is supported in DMS versions 3.4.1 and later.
Sourcepub fn preserve_transactions(&self) -> Option<bool>
pub fn preserve_transactions(&self) -> Option<bool>
If set to true
, DMS saves the transaction order for a change data capture (CDC) load on the Amazon S3 target specified by CdcPath
. For more information, see Capturing data changes (CDC) including transaction order on the S3 target.
This setting is supported in DMS versions 3.4.2 and later.
Sourcepub fn cdc_path(&self) -> Option<&str>
pub fn cdc_path(&self) -> Option<&str>
Specifies the folder path of CDC files. For an S3 source, this setting is required if a task captures change data; otherwise, it's optional. If CdcPath
is set, DMS reads CDC files from this path and replicates the data changes to the target endpoint. For an S3 target if you set PreserveTransactions
to true
, DMS verifies that you have set this parameter to a folder path on your S3 target where DMS can save the transaction order for the CDC load. DMS creates this CDC folder path in either your S3 target working directory or the S3 target location specified by BucketFolder
and BucketName
.
For example, if you specify CdcPath
as MyChangedData
, and you specify BucketName
as MyTargetBucket
but do not specify BucketFolder
, DMS creates the CDC folder path following: MyTargetBucket/MyChangedData
.
If you specify the same CdcPath
, and you specify BucketName
as MyTargetBucket
and BucketFolder
as MyTargetData
, DMS creates the CDC folder path following: MyTargetBucket/MyTargetData/MyChangedData
.
For more information on CDC including transaction order on an S3 target, see Capturing data changes (CDC) including transaction order on the S3 target.
This setting is supported in DMS versions 3.4.2 and later.
Sourcepub fn use_task_start_time_for_full_load_timestamp(&self) -> Option<bool>
pub fn use_task_start_time_for_full_load_timestamp(&self) -> Option<bool>
When set to true, this parameter uses the task start time as the timestamp column value instead of the time data is written to target. For full load, when useTaskStartTimeForFullLoadTimestamp
is set to true
, each row of the timestamp column contains the task start time. For CDC loads, each row of the timestamp column contains the transaction commit time.
When useTaskStartTimeForFullLoadTimestamp
is set to false
, the full load timestamp in the timestamp column increments with the time data arrives at the target.
Sourcepub fn canned_acl_for_objects(&self) -> Option<&CannedAclForObjectsValue>
pub fn canned_acl_for_objects(&self) -> Option<&CannedAclForObjectsValue>
A value that enables DMS to specify a predefined (canned) access control list for objects created in an Amazon S3 bucket as .csv or .parquet files. For more information about Amazon S3 canned ACLs, see Canned ACL in the Amazon S3 Developer Guide.
The default value is NONE. Valid values include NONE, PRIVATE, PUBLIC_READ, PUBLIC_READ_WRITE, AUTHENTICATED_READ, AWS_EXEC_READ, BUCKET_OWNER_READ, and BUCKET_OWNER_FULL_CONTROL.
Sourcepub fn add_column_name(&self) -> Option<bool>
pub fn add_column_name(&self) -> Option<bool>
An optional parameter that, when set to true
or y
, you can use to add column name information to the .csv output file.
The default value is false
. Valid values are true
, false
, y
, and n
.
Sourcepub fn cdc_max_batch_interval(&self) -> Option<i32>
pub fn cdc_max_batch_interval(&self) -> Option<i32>
Maximum length of the interval, defined in seconds, after which to output a file to Amazon S3.
When CdcMaxBatchInterval
and CdcMinFileSize
are both specified, the file write is triggered by whichever parameter condition is met first within an DMS CloudFormation template.
The default value is 60 seconds.
Sourcepub fn cdc_min_file_size(&self) -> Option<i32>
pub fn cdc_min_file_size(&self) -> Option<i32>
Minimum file size, defined in kilobytes, to reach for a file output to Amazon S3.
When CdcMinFileSize
and CdcMaxBatchInterval
are both specified, the file write is triggered by whichever parameter condition is met first within an DMS CloudFormation template.
The default value is 32 MB.
Sourcepub fn csv_null_value(&self) -> Option<&str>
pub fn csv_null_value(&self) -> Option<&str>
An optional parameter that specifies how DMS treats null values. While handling the null value, you can use this parameter to pass a user-defined string as null when writing to the target. For example, when target columns are nullable, you can use this option to differentiate between the empty string value and the null value. So, if you set this parameter value to the empty string ("" or ''), DMS treats the empty string as the null value instead of NULL
.
The default value is NULL
. Valid values include any valid string.
Sourcepub fn ignore_header_rows(&self) -> Option<i32>
pub fn ignore_header_rows(&self) -> Option<i32>
When this value is set to 1, DMS ignores the first row header in a .csv file. A value of 1 turns on the feature; a value of 0 turns off the feature.
The default is 0.
Sourcepub fn max_file_size(&self) -> Option<i32>
pub fn max_file_size(&self) -> Option<i32>
A value that specifies the maximum size (in KB) of any .csv file to be created while migrating to an S3 target during full load.
The default value is 1,048,576 KB (1 GB). Valid values include 1 to 1,048,576.
Sourcepub fn rfc4180(&self) -> Option<bool>
pub fn rfc4180(&self) -> Option<bool>
For an S3 source, when this value is set to true
or y
, each leading double quotation mark has to be followed by an ending double quotation mark. This formatting complies with RFC 4180. When this value is set to false
or n
, string literals are copied to the target as is. In this case, a delimiter (row or column) signals the end of the field. Thus, you can't use a delimiter as part of the string, because it signals the end of the value.
For an S3 target, an optional parameter used to set behavior to comply with RFC 4180 for data migrated to Amazon S3 using .csv file format only. When this value is set to true
or y
using Amazon S3 as a target, if the data has quotation marks or newline characters in it, DMS encloses the entire column with an additional pair of double quotation marks ("). Every quotation mark within the data is repeated twice.
The default value is true
. Valid values include true
, false
, y
, and n
.
Sourcepub fn date_partition_timezone(&self) -> Option<&str>
pub fn date_partition_timezone(&self) -> Option<&str>
When creating an S3 target endpoint, set DatePartitionTimezone
to convert the current UTC time into a specified time zone. The conversion occurs when a date partition folder is created and a CDC filename is generated. The time zone format is Area/Location. Use this parameter when DatePartitionedEnabled
is set to true
, as shown in the following example.
s3-settings='{"DatePartitionEnabled": true, "DatePartitionSequence": "YYYYMMDDHH", "DatePartitionDelimiter": "SLASH", "DatePartitionTimezone":"Asia/Seoul", "BucketName": "dms-nattarat-test"}'
Sourcepub fn add_trailing_padding_character(&self) -> Option<bool>
pub fn add_trailing_padding_character(&self) -> Option<bool>
Use the S3 target endpoint setting AddTrailingPaddingCharacter
to add padding on string data. The default value is false
.
Sourcepub fn expected_bucket_owner(&self) -> Option<&str>
pub fn expected_bucket_owner(&self) -> Option<&str>
To specify a bucket owner and prevent sniping, you can use the ExpectedBucketOwner
endpoint setting.
Example: --s3-settings='{"ExpectedBucketOwner": "AWS_Account_ID"}'
When you make a request to test a connection or perform a migration, S3 checks the account ID of the bucket owner against the specified parameter.
Sourcepub fn glue_catalog_generation(&self) -> Option<bool>
pub fn glue_catalog_generation(&self) -> Option<bool>
When true, allows Glue to catalog your S3 bucket. Creating an Glue catalog lets you use Athena to query your data.
Source§impl S3Settings
impl S3Settings
Sourcepub fn builder() -> S3SettingsBuilder
pub fn builder() -> S3SettingsBuilder
Creates a new builder-style object to manufacture S3Settings
.
Trait Implementations§
Source§impl Clone for S3Settings
impl Clone for S3Settings
Source§fn clone(&self) -> S3Settings
fn clone(&self) -> S3Settings
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for S3Settings
impl Debug for S3Settings
Source§impl PartialEq for S3Settings
impl PartialEq for S3Settings
impl StructuralPartialEq for S3Settings
Auto Trait Implementations§
impl Freeze for S3Settings
impl RefUnwindSafe for S3Settings
impl Send for S3Settings
impl Sync for S3Settings
impl Unpin for S3Settings
impl UnwindSafe for S3Settings
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightBlack
.
§Example
println!("{}", value.bright_black());
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightGreen
.
§Example
println!("{}", value.bright_green());
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightYellow
.
§Example
println!("{}", value.bright_yellow());
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightMagenta
.
§Example
println!("{}", value.bright_magenta());
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Returns self
with the
fg()
set to
Color::BrightWhite
.
§Example
println!("{}", value.bright_white());
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightBlack
.
§Example
println!("{}", value.on_bright_black());
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightGreen
.
§Example
println!("{}", value.on_bright_green());
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightYellow
.
§Example
println!("{}", value.on_bright_yellow());
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightBlue
.
§Example
println!("{}", value.on_bright_blue());
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightMagenta
.
§Example
println!("{}", value.on_bright_magenta());
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightCyan
.
§Example
println!("{}", value.on_bright_cyan());
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Returns self
with the
bg()
set to
Color::BrightWhite
.
§Example
println!("{}", value.on_bright_white());
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute
value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
Source§fn underline(&self) -> Painted<&T>
fn underline(&self) -> Painted<&T>
Returns self
with the
attr()
set to
Attribute::Underline
.
§Example
println!("{}", value.underline());
Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Returns self
with the
attr()
set to
Attribute::RapidBlink
.
§Example
println!("{}", value.rapid_blink());
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
Quirk
value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition
value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);