Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在AWS-DMS目标S3端点中使用control-A字符作为csvDelimiter?_Csv_Amazon S3_Delimiter_Aws Dms - Fatal编程技术网

如何在AWS-DMS目标S3端点中使用control-A字符作为csvDelimiter?

如何在AWS-DMS目标S3端点中使用control-A字符作为csvDelimiter?,csv,amazon-s3,delimiter,aws-dms,Csv,Amazon S3,Delimiter,Aws Dms,我正在使用AWS DMS将数据从Aurora提取到S3,并希望在将数据加载到S3时使用我选择的csvDelimiter,即^A(即control-A,八进制表示\001)。我该怎么做?。默认情况下,当S3用作DMS的目标时,它使用“,”作为默认分隔符 压缩类型=无;csvDelimiter=,;csvRowDelimiter=\n 但是我想用下面的东西 压缩类型=无;csvDelimiter='\001';csvRowDelimiter=\n 但它在输出中将分隔符打印为文本: I'\001'12

我正在使用AWS DMS将数据从Aurora提取到S3,并希望在将数据加载到S3时使用我选择的csvDelimiter,即^A(即control-A,八进制表示\001)。我该怎么做?。默认情况下,当S3用作DMS的目标时,它使用“,”作为默认分隔符

压缩类型=无;csvDelimiter=,;csvRowDelimiter=\n

但是我想用下面的东西
压缩类型=无;csvDelimiter='\001';csvRowDelimiter=\n

但它在输出中将分隔符打印为文本:
I'\001'12345'\001'Abc'

我正在使用AWS DMS控制台设置目标端点 我尝试了以下分隔符,但不起作用:

\\001
\u0001
'\u0001'
\u01
\001

实际结果:
I'\001'12345'\001'Abc'
预期结果:
I^A12345^AAbc

以下是我为解决此问题所做的:

我使用aws命令行在目标s3端点中设置此分隔符。

aws cli命令:

aws dms modify-endpoint --endpoint-arn arn:aws:dms:us-west-2:000001111222:endpoint:OXXXXXXXXXXXXXXXXXXXX4 --endpoint-identifier dms-ep-tgt-s3-abc --endpoint-type target --engine-name s3 --extra-connection-attributes "bucketFolder=data/folderx;bucketname=bkt-xyz;CsvRowDelimiter=^D;CompressionType=NONE;CsvDelimiter=^A;" --service-access-role-arn arn:aws:iam::000001111222:role/XYZ-Datalake-DMS-Role --s3-settings ServiceAccessRoleArn=arn:aws:iam::000001111222:role/XYZ-Datalake-DMS-Role,BucketName=bkt-xyz,CompressionType=NONE
输出:

{
"Endpoint": {
    "Status": "active", 
    "S3Settings": {
        "CompressionType": "NONE", 
        "EnableStatistics": true, 
        "BucketFolder": "data/folderx", 
        "CsvRowDelimiter": "\u0004", 
        "CsvDelimiter": "\u0001", 
        "ServiceAccessRoleArn": "arn:aws:iam::000001111222:role/XYZ-Datalake-DMS-Role", 
        "BucketName": "bkt-xyz"
    }, 
    "EndpointType": "TARGET", 
    "ServiceAccessRoleArn": "arn:aws:iam::000001111222:role/XYZ-Datalake-DMS-Role", 
    "SslMode": "none", 
    "EndpointArn": "arn:aws:dms:us-west-2:000001111222:endpoint:OXXXXXXXXXXXXXXXXXXXX4", 
    "ExtraConnectionAttributes": "bucketFolder=data/folderx;bucketname=bkt-xyz;CompressionType=NONE;CsvDelimiter=\u0001;CsvRowDelimiter=\u0004;", 
    "EngineDisplayName": "Amazon S3", 
    "EngineName": "s3", 
    "EndpointIdentifier": "dms-ep-tgt-s3-abc"
}
}

注意:运行aws cli命令后,DMS控制台将不显示端点中的分隔符(不可见,因为它是一个特殊字符)。但是,一旦您运行了任务,它就会出现在s3文件的数据中