Как добавить метаданные к вызову nodejs grpc

Это скрипт, который отлично работает с psql shell:

insert into tempsdf select * from source where source.id = '123';

Вот некоторые из моих тестов в SqlActivity с использованием Data-Pipelines:


Тест 1 : Использование? '

insert into mytable select * from source where source.id = ?; - отлично работает, если используется через параметр «script» и «scriptURI» объекта SqlActivity.

где "ScriptArgument" : "123"

здесь? может заменить значение условия, но не само условие.


Тест 2: Использование параметров работает, когда команда задана только с помощью опции «script»

insert into #{myTable} select * from source where source.id = ?; - Работает нормально, если используется через ' скрипт '

insert into #{myTable} select * from source where source.id = #{myId};
  • работает отлично, если используется только с помощью опции «script»

где #{myTable}, #{myId} - параметры, значение которых могут быть объявлены в шаблоне.

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-custom-templates.html

( когда вы используете только параметры, убедитесь, что вы удалили неиспользуемые скриптыArguments - в противном случае он все равно будет бросать и ошибка)

blockquote>

FAILED TESTS и inferences:

insert в? выберите * из источника, где source.id =?;

вставить? выберите * из источника, где source.id = '123';

Обе вышеприведенные команды не работают, потому что

Названия таблиц не могут использоваться для заполнителей для аргументов сценария. '?' 's может использоваться только для передачи значений для условия сравнения и значений столбца.

blockquote>

insert into # {myTable} select * from source где source.id = # {мой ID}; - не работает, если используется как «SciptURI»

вставить в tempsdf select * из источника, где source.id = # {myId}; - не работает при использовании с 'ScriptURI'

Выше 2 команды не работают, потому что

Параметры не могут быть оценены, если скрипт хранится в S3.


вставить в tempsdf select * из источника, где source.id = $ 1; - не работает с 'scriptURI'

вставить в значения tempsdf ($ 1, $ 2, $ 3); - не работает.

с использованием $ 's - не работает ни в одной комбинации

blockquote>

Другие тесты:

"ScriptArgument" : «123» «ScriptArgument»: «456» «ScriptArgument»: «789»

insert into tempsdf values (?,?,?); - работает как scriptURI, скрипт и переводится на insert into tempsdf values ('123','456','789');

scriptArguments будет следовать порядку, который вы вставляете и заменяет «?» в скрипте.

blockquote>

13
задан Trent 30 May 2016 в 22:47
поделиться