Преобразование сдвига JOLT - проблема с преобразованием ниже - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь преобразовать входной json ниже, чтобы сгладить необходимые имена столбцов и их значения при сохранении всех метаданных.

Ниже приведен входной json , который я использую для моего CDC-case.

{
  "type": "update",
  "timestamp": 1558346256000,
  "binlog_filename": "mysql-bin-changelog.000889",
  "binlog_position": 635,
  "database": "books",
  "table_name": "publishers",
  "table_id": 111,
  "columns": [
    {
      "id": 1,
      "name": "id",
      "column_type": 4,
      "last_value": 2,
      "value": 2
    },
    {
      "id": 2,
      "name": "name",
      "column_type": 12,
      "last_value": "Suresh",
      "value": "Suresh123"
    },
    {
      "id": 3,
      "name": "email",
      "column_type": 12,
      "last_value": "Suresh@yahoo.com",
      "value": "Suresh@yahoo.com"
    }
  ]
}

Ниже приведен ожидаемый вывод json

[
  {
    "type": "update",
    "timestamp": 1558346256000,
    "binlog_filename": "mysql-bin-changelog.000889",
    "binlog_position": 635,
    "database": "books",
    "table_name": "publishers",
    "table_id": 111,
    "columns": {
      "id": "2",
      "name": "Suresh123",
      "email": "Suresh@yahoo.com"
    }
  }
]

Я попробовал приведенную ниже спецификацию, из которой я могу получить объект столбцов, но неостальные метаданные.

[
  {
    "operation": "shift",
    "spec": {
      "columns": {
        "*": {
          "@(value)": "[#1].@(1,name)"
        }
      }
    }
  }
]

Любые выводы будут очень цениться.

1 Ответ

1 голос
/ 21 мая 2019

Я получил спецификацию JOLT для вышеуказанного преобразования.Я выкладываю это здесь, если кто-нибудь наткнется на что-то вроде этого.

[
  {
    "operation": "shift",
    "spec": {
      "columns": {
        "*": {
          "@(value)": "columns.@(1,name)"
        }
      },
      "*": "&"
    }
  }
]
...