使用streamsets微服务管道从RESTHTTPURL获取get方法的参数

hmtdttj4  于 2021-06-24  发布在  Kudu
关注(0)|答案(1)|浏览(426)

我在streamset中创建了一个微服务管道。在进行get callout时,我必须使用expression evaluator根据httpget url中发送的参数从mysql检索数据?
我的网址应该是这样的: http://my.url.com:0191?param1=xyz&param2= 我必须根据 param1 价值与 param2 价值观。
另外,如何处理params send为空的情况?

mcvgt66p

mcvgt66p1#

url参数显示在 queryString 记录头属性;您可以使用字段表达式在表达式计算器中解析它们:

${str:splitKV(record:attribute('queryString'), '&', '=')}

如果将输出字段设置为 / ,则您的参数现在将位于字段中 /param1 以及 /param2 . 您可以在jdbc查找处理器中的mysql查询中使用它们,如下所示:

-- Assuming col1 is an integer (doesn't need quotes) and col2 is a string (needs quotes)
SELECT * FROM tablename 
WHERE col1 = ${record:value('/param1') AND col2 = '${record:value('/param2')'

可以使用 record:attributeOrDefault() 函数设置默认值,或使用流选择器沿不同路径发送记录。

相关问题