Запуск. sql файл в AWS Афина - PullRequest
0 голосов
/ 03 февраля 2020

Мне нужно создать схему c publi. Мой sql скрипт находится в. sql файле, часть которого показана ниже для справки.

DROP MATERIALIZED VIEW IF EXISTS ELIXHAUSER_QUAN CASCADE;
CREATE MATERIALIZED VIEW ELIXHAUSER_QUAN AS
with icd as
(
  select hadm_id, seq_num, icd9_code
  from diagnoses_icd
  where seq_num != 1 -- we do not include the primary icd-9 code
)................................................................

В любом случае я могу запустить. sql файл в AWS Афина вместо выполнения запросов один за другим.

Когда я запускаю следующий SQL запрос в AWS Афина, появляется сообщение об ошибке.

DROP MATERIALIZED VIEW IF EXISTS ELIXHAUSER_QUAN CASCADE;
CREATE MATERIALIZED VIEW ELIXHAUSER_QUAN AS
with icd as
(
  select hadm_id, seq_num, icd9_code
  from diagnoses_icd
  where seq_num != 1 -- we do not include the primary icd-9 code
)

Ваш запрос имеет следующий ошибки:

Допускается только один оператор sql. Получил: ОТПРАВИТЬ МАТЕРИАЛИЗОВАННЫЙ ВИД, ЕСЛИ ЕСТЬ ELIXHAUSER_QUAN CASCADE; СОЗДАТЬ МАТЕРИАЛИЗОВАННЫЙ ВИД ELIXHAUSER_QUAN AS с icd as (выберите hadm_id, seq_num, icd9_code из Diagnoses_icd где seq_num! = 1 - мы не включаем основной код icd-9) (Сервис: AmazonAthena; Код состояния: 400; Код ошибки: InvalidRequestException; Код запроса: 821def0f-4d38-4e15-b2d7-4d315472461d)

1 Ответ

1 голос
/ 03 февраля 2020

Нет, вы не можете запустить .sql сценарии непосредственно на AWS Афина. Более того, вы не можете выполнить несколько операторов в одном запросе, поэтому вы должны отправлять их по одному. Все, что вы можете - это проанализировать ваш .sql скрипт и разделить его содержимое на ;. Затем отправьте каждое из этих утверждений последовательно, например, boto3, то есть Python SDK для AWS. Также обратите внимание:

  1. AWS Athena изначально поддерживает необязательное предложение OR REPLACE, которое позволяет обновлять существующее представление путем его замены.

  2. CREATE MATERIALIZED VIEW не поддерживается AWS Athena. Полный список разрешенных операторов DDL приведен здесь .

...