Можно ли бросить несколько просмотров одновременно в Impala - PullRequest
2 голосов
/ 05 июля 2019

У меня есть база данных с тремя представлениями. Я пытаюсь выполнить команду, чтобы сбросить все три сразу.

Руководство Impala показывает, что можно отбрасывать один вид за раз, используя

DROP VIEW IF EXISTS mydb.view_name

Но он не предлагает метод отбрасывания более чем одного представления, в то же время эта страница из Руководства не предполагает, что это будет ограничением.

Если бы я использовал сервер SQL (и другие версии SQL), я мог бы следовать методу, показанному в этого урока , разделяя представления ,.

DROP VIEW IF EXISTS 
                   mydb.view_v1,
                   mydb.view_v2,
                   mydb.view_v3;

Я ожидаю, что это отбросит три представления из базы данных.

Однако, когда я пробую это в Impala, я получаю следующее сообщение об ошибке:

AnalysisException: Syntax error in line 2:undefined: ...exists mydb.view_v1, mydb.view_v2, mydb... ^ Encountered: COMMA Expected: ADD, ALTER, AS, CACHED, CHANGE, COMMENT, DROP, FROM, LIKE, LOCATION, PARTITION, PARTITIONED, PRIMARY, PURGE, RECOVER, RENAME, REPLACE, ROW, SELECT, SET, SORT, STORED, STRAIGHT_JOIN, TBLPROPERTIES, TO, UNCACHED, VALUES, WITH CAUSED BY: Exception: Syntax error

и все виды остаются.

1 Ответ

1 голос
/ 06 июля 2019

Очевидно, что ошибка указывает на то, что в терминах Impala ваше утверждение не является синтаксически правильным (и не поддерживается).

Единственный способ придумать что-то похожее на то, что вам нужно, - это поместить все представления в отдельную базу данных, а затем запустить DROP DATABASE ... CASCADE. Я ожидаю, что эта операция будет работать атомарно, т. Е. Либо сбоит, либо как единое целое.

...