0

从 1 DB 获取付款详细信息并使用 2nd DB 中的这些值来获取结果。但根据 SQL 限制付款 ID IN(<从第一个 DB 限制为 999 个付款 ID>)。我们如何使用允许超过 30K 支付 ID 的SPLUNK DB CONNECT做到这一点?我有两个数据库连接字符串。

第一个带有连接的 sql:

| streamstats count as "rc" 
| table payment_id rc 
| eval rc1 = rc%10 
| table payment_id rc1 
| eval payment_id = "'"+payment_id+"'," 
| stats values(payment_id) as payment_id by rc1 
| mvcombine delim="" payment_id 
| nomv payment_id 
| rex field=payment_id "(?<payment_id>.*)." 
| map search="|dbxquery connection = "" 

<2nd sql here where using the above payment_id in where condition as below>

(payment_id IN ("$payment_id$"))>

在这里,它会将 payment_id 值的数量除以 10 并将流发送到 map。由于 MAP 只允许 9 个值,我必须将其除以 10。例如:如果我有 9K 个支付 ID,将形成 9K%10 个流并发送到第二个 sql 查询。这里的限制仅适用于 10K 记录,只有以下内容才有效。它不适用于超过 10K payment_ids

4

1 回答 1

0
1st sql with connection
| streamstats count as "rc"
| table payment_id rc
| eval rc1 = rc%10
| table payment_id rc1
| eval payment_id = "'"+payment_id+"',"
| stats values(payment_id) as payment_id by rc1 
| mvcombine delim="" payment_id | nomv payment_id
| rex field=payment_id "(?<payment_id>.*)."
| map search="|dbxquery connection = "" <2nd sql here where using the above payment_id in where condition as below>

(payment_id IN ("$payment_id$")) >


在这里,它会将 payment_id 值的数量除以 10 并将流发送到 map。由于 MAP 只允许 9 个值,我必须将其除以 10。例如:如果我有 9K 个付款 ID,将形成 9K%10 个流并将其发送到第二个 sql 查询。

这里的限制仅适用于 10K 记录,只有以下内容才有效。它不会工作超过 10K payment_ids

于 2020-08-12T06:20:20.917 回答