2016-03-24 2 views
1

В этом другом вопросе https://stackoverflow.com/a/36145155/2259571 был отправлен пример кода, который определяет встроенную в Javascript функцию UDF, а не в редакторе UDF BigQuery UIF, а не в командной строке командной строки --udf_resource, но загружается непосредственно из текста SQL-запроса ,Где находится документация BigQuery, описывающая определение встроенной Javascript функции UDF в SQL (не в редакторе UDF или отдельном файле)?

В документации BigQuery можно найти дополнительную информацию о том, как это делается?

JS (...) выглядит как функция, но я не могу найти ее в документации по адресу https://cloud.google.com/bigquery/query-reference. Я также ничего не могу найти об этой конструкции в https://cloud.google.com/bigquery/user-defined-functions. Я просто пропустил ее? Или это недокументировано?

Вот упрощенная версия запроса (это выполняется в BigQuery UI и инструмент командной строки Бк):

SELECT outputA 
FROM JS(
// input table 
(
    SELECT text2 as inputA 
    FROM 
    (SELECT 'mikhail' AS text2), 
    (SELECT 'mike' AS text2), 
    (SELECT 'michael' AS text2), 
    (SELECT 'javier' AS text2), 
    (SELECT 'thomas' AS text2) 
) 

// input columns 
, inputA 

// output schema 
, "[{name: 'outputA', type:'string'}]" 

// function 
, "function(r, emit) { 

    emit({ 
     outputA: 'XX ' + r.inputA + ' XX' 
    }); 

    }" 
) 

Выход:

outputA 
XX mikhail XX 
XX mike XX 
XX michael XX 
XX javier XX 
XX thomas XX 

ответ

2

Синтаксис inline JS - это синтаксис «alpha» и намеренно оставлен недокументированным. В настоящее время мы не планируем снимать или изменять эту функциональность, но это также официально не поддерживается.

У нас есть планы предоставить официальную поддержку встроенных JS UDF в какой-то момент в будущем, но с немного другим синтаксисом.

Если вы хотите использовать эту функцию, несмотря на предостережение выше, см. Ответ Михаила.

+0

Спасибо, Джереми! Хорошо знать. Я не знал, что это все еще альфа. –

+1

. Чтобы быть понятным, JQ UDF BQ полностью запущены и, как правило, доступны, как описано на странице https://cloud.google.com/bigquery/user-defined-functions. Только встроенный синтаксис официально не поддерживается. Мы изменили API до окончательного запуска, но оставили старый синтаксис, чтобы не нарушать ранних пользователей. –

+0

есть. вот как я прочитал ваш ответ. спасибо, снова за то, что вы оставили альфа-синтаксис! –

2

теперь я вижу, что вы находясь в поиске.
Похоже, это не доступно в BigQuery документации Google

Но пример вы получили - в значительной степени дает структуру такого использования - ничего не пропустили - все остальное находится в ссылке, вы уже знаете - https://cloud.google.com/bigquery/user-defined-functions - и до сих пор применяется и только вам нужно

Как меня лично - я узнал о inline js udf относительно давно из ниже ссылок (только несколько из них)
http://www.slideshare.net/BigDataSpain/thomas-park-hands-on-with-big-query-javascript-udfs-bigdataspain-2014
https://www.youtube.com/watch?v=6TYA6hy44Jo
https://www.youtube.com/watch?v=GrD7ymUPt3M (перейти на 28+ мин)

Смежные вопросы