Выполнение хранимой процедуры из Cloud Datafusion

Я пытаюсь выполнить хранимую процедуру, которая присутствует в bigquery, используя Datafusion Bigquery Execute, т.е. я вызываю процедуру из команды SQL выполнения большого запроса. Конвейер не работает с исключением Null. Это то, что Bigquery выполняется только для выполнения команд SQL, а не для вызова процедур или Функции.

Спасибо,


person Manasa    schedule 05.03.2020    source источник


Ответы (1)


Хранимые процедуры Bigquery используют другую сигнатуру вызова, как описано здесь https://www.google.com/amp/s/cloudblog.withgoogle.com/products/data-analytics/command-and-control-now-easier.-in-bigquery-with-scripting-and-stored-Procedures/amp/

Обратите внимание, что эта функция все еще находится в стадии бета-тестирования и может измениться в будущем. Одна вещь, которую я обнаружил после этого примера, связана с jdbc, мне пришлось выполнять все операторы как блок, а не один за другим

DECLARE target_employee_id INT64 DEFAULT 9;
DECLARE employee_hierarchy ARRAY<INT64>;
CALL dataset.GetEmployeeHierarchy(target_employee_id, employee_hierarchy)
SELECT target_employee, employee_hierarchy;
person sramalingam24    schedule 05.03.2020
comment
Я объявил процедуру без параметров в Bigquery и пытаюсь вызвать ту же процедуру с помощью команды SQL Cloud Datafusion Bigquery выполнить компонент. Код: создать или заменить процедуру proc_name Начать обновление набора таблиц empid = 40 end; .. Затем вызвать с помощью call proc_name. Я могу выполнить эти операторы в инструменте Bigquery, но при вызове того же оператора вызова из Datafusion он не работает с исключением Null. Может ли кто-нибудь помочь решить эту проблему. - person Manasa; 06.03.2020
comment
Я думаю, что он на самом деле выполняет обновление, просто драйвер ищет набор результатов, которого нет. Попробуйте добавить фиктивный оператор выбора после оператора вызова, чтобы подтвердить - person sramalingam24; 07.03.2020
comment
Я могу выполнить процедуру из Datafusion, добавив имя проекта.datasetname.tablename в оператор вызова. Спасибо за помощь. - person Manasa; 08.03.2020