RedshiftDataClient BatchExecuteStatement объединяет все запросы в один

Я использую команду BatchExecuteStatement в RedshiftDataClient (@ aws-sdk / client-redshift-data 3.39.0) для выполнения ряда запросов по красному смещению. Это не обновляло базу данных, но и не выдавало ошибки, поэтому для устранения неполадок я использовал команду ListStatements, чтобы увидеть, есть ли там понимание того, что происходит. Я обнаружил, что все мои запросы были объединены в один. Например:

      const redshiftQueries: string[] = ["select 1", "select 2", "select 3"];
await redshiftDataClient.send(
      new BatchExecuteStatementCommand({
        ...other.config.values,
        Sqls: redshiftQueries,
      })
    );

await redshiftDataClient.send(
        new ListStatementsCommand({
          MaxResults: 100,
          Status: StatusString.ALL,
        })
      );

возвращается

      {
  "$metadata": {
    "httpStatusCode": 200,
    "requestId": "6c1dbf86-0bf1-4111-9f96-c300114daaaa",
    "attempts": 1,
    "totalRetryDelay": 0
  },
  "Statements": [
    {
      "CreatedAt": "2021-11-04T12:39:14.423Z",
      "Id": "0218bcbc-b775-4318-b111-65d7cd7eaaaa",
      "IsBatchStatement": true,
      "QueryString": "select 1select 2select 3",
      "Status": "FINISHED",
      "UpdatedAt": "2021-11-04T12:39:15.120Z"
    }
  ]
}
 

Глядя на документацию ListStatements, я ожидал, что в этом случае я получу атрибут QueryStrings с массивом запросов, а не атрибут QueryString с объединенными запросами.

Фактические запросы, которые мне нужно выполнить, конечно, намного длиннее, и проблема в том, что когда они объединяются таким образом, только первые 100 символов каждого из них отображаются в объединенной строке, поэтому у них нет надежды на успешное выполнение.

Есть идеи, что я делаю не так?

1 ответ

Я не думаю, что вы делаете что-то не так, у меня такая же проблема с python. Возможно, это ошибка.

Мои запросы выполняются правильно внутри транзакции, но Redshift Data API возвращает в виде одной строки.

И, в моем случае, это искажает запрос на странице «Запросы и загрузки» в консоли Redshift, я могу видеть только последний из моего массива запросов.

Другие вопросы по тегам