Я настроил конвейер данных, который выводит таблицу в файл S3 каждые четыре часа.Все работает как положено.Единственная проблема заключается в том, что этот файл используется для загрузки другой таблицы красного смещения, которая ищет файл S3 с разделителями в виде трубы для заполнения.У меня нет доступа к параметрам Serde этой таблицы, поэтому мне нужно, чтобы выходной файл S3 был разделен конвейером ("|").
Ниже приведен JSON, используемый для создания конвейера:
{
"objects": [
{
"subnetId": "subnet",
"resourceRole": "DefaultResourceRole",
"role": "DefaultRole",
"securityGroupIds": "someid",
"instanceType": "m3.large",
"name": "DefaultResource",
"keyPair": "blah",
"id": "ResourceId",
"type": "Ec2Resource",
"terminateAfter": "15 Minutes"
},
{
"databaseName": "blah",
"*password": "blahwithsymbols",
"name": "DefaultDatabase",
"id": "DatabaseId",
"clusterId": "production",
"type": "RedshiftDatabase",
"username": "blahblah"
},
{
"period": "4 Hours",
"name": "Every 4 hours",
"id": "DefaultSchedule",
"type": "Schedule",
"startAt": "FIRST_ACTIVATION_DATE_TIME"
},
{
"failureAndRerunMode": "CASCADE",
"schedule": {
"ref": "DefaultSchedule"
},
"resourceRole": "ResourceRole",
"role": "Role",
"pipelineLogUri": "s3://logs.blah.blah",
"scheduleType": "cron",
"name": "Default",
"id": "Default"
},
{
"output": {
"ref": "S3DataNodeId"
},
"input": {
"ref": "RedshiftDataNodeId"
},
"schedule": {
"ref": "DefaultSchedule"
},
"onSuccess": {
"ref": "SuccessNotify"
},
"onFail": {
"ref": "FailureNotify"
},
"name": "Copy",
"id": "RedshiftCopyActivityId",
"runsOn": {
"ref": "ResourceId"
},
"type": "RedshiftCopyActivity",
"insertMode": "TRUNCATE"
},
{
"schedule": {
"ref": "DefaultSchedule"
},
"database": {
"ref": "DatabaseId"
},
"name": "DefaultRedshiftDataNode",
"id": "RedshiftDataNodeId",
"type": "RedshiftDataNode",
"tableName": "blah"
},
{
"schedule": {
"ref": "DefaultSchedule"
},
"directoryPath": "s3://blah.com/blah/#{format(@scheduledStartTime,'YYYY')}/#{month(@scheduledStartTime)}",
"name": "DefaultS3DataNode",
"id": "S3DataNodeId",
"type": "S3DataNode"
},
{
"subject": "Load SUCCESS: #{node.@scheduledStartTime}",
"name": "Load Success SNS",
"id": "SuccessNotify",
"message": "Successfully ran RedshiftCopyActivity #{node.name}.",
"type": "SnsAlarm",
"topicArn": "-"
},
{
"subject": "Load FAILURE: #{node.@scheduledStartTime}",
"name": "Failed SNS",
"id": "FailureNotify",
"message": "FAILED: RedshiftCopyActivity #{node.name}.",
"type": "SnsAlarm",
"topicArn": "blah"
}
],
"parameters": []
}
Нужно ли создавать раздел формата данных для разделителя или есть что-то вроде тега «разделителя» для узла s3?
Спасибо.