Используйте имя таблицы из Amazon RDS в выходном CSV-файле, отправляемом на S3.

Мне удалось получить конвейер данных для передачи данных из набора таблиц в Amazon RDS (Aurora) в набор файлов .csv в S3 с «copyActivity», соединяющим два узла данных.

Однако я бы хотел, чтобы файл .csv имел имя таблицы (или представления), из которой он был получен. Я не совсем понимаю, как это сделать. Я думаю, что лучший подход — использовать выражение для параметра filePath узла S3 DataNode.

Но я безуспешно пробовал #{table}, #{node.table}, #{parent.table} и различные комбинации node.id и parent.name.

Вот пара фрагментов JSON из моего пайплайна:

"database": {
    "ref": "DatabaseId_abc123"
  },
  "name": "Foo",
  "id": "DataNodeId_xyz321",
  "type": "MySqlDataNode",
  "table": "table_foo",
  "selectQuery": "select * from #{table}"
},
{
  "schedule": {
    "ref": "DefaultSchedule"
  },
  "filePath": "#{myOutputS3Loc}/#{parent.node.table.help.me.here}.csv",
  "name": "S3_BAR_Bucket",
  "id": "DataNodeId_w7x8y9",
  "type": "S3DataNode"
}

Любые советы, которые вы можете дать, будут оценены.


person D. Woods    schedule 06.11.2015    source источник


Ответы (1)


Я вижу, что у вас есть #{table} (вы имели в виду #{myTable}?). Если вы используете параметр для передачи имени таблицы БД, вы также можете использовать его в пути к файлу S3, например:

"filePath": "#{myOutputS3Loc}/#{myTable}.csv",

person Austin Lee    schedule 09.11.2015
comment
Спасибо. Нет, похоже, я не ясно выразился, извините. Имя таблиц БД жестко закодировано в узлах данных (у меня 4 исходных узла). Это дает мне представление, однако, интересно, есть ли способ использовать отдельные мои параметры для узлов данных, а затем индивидуально ссылаться на них в узле выходных данных? - person D. Woods; 12.11.2015