Python 从splunk REST API导出/流式传输大量结果
我需要从splunk导出大量事件。因此,出于性能原因,我在python代码中直接使用RESTAPI,而不是使用Splunk SDK本身 我使用以下curl命令导出结果。这也可以通过以下方式获得:- 我尝试使用python的http函数对此进行模拟,如下所示:-Python 从splunk REST API导出/流式传输大量结果,python,rest,splunk,Python,Rest,Splunk,我需要从splunk导出大量事件。因此,出于性能原因,我在python代码中直接使用RESTAPI,而不是使用Splunk SDK本身 我使用以下curl命令导出结果。这也可以通过以下方式获得:- 我尝试使用python的http函数对此进行模拟,如下所示:- //assume i have authenticated to splunk and have a session key base_url = "http://splunkhost:port" search_job_urn = '/
//assume i have authenticated to splunk and have a session key
base_url = "http://splunkhost:port"
search_job_urn = '/services/search/jobs/export'
myhttp = httplib2.Http(disable_ssl_certificate_validation=True)
searchjob = myhttp.request(base_url + search_job_urn, 'POST', headers=
{'Authorization': 'Splunk %s' % sessionKey},
body=urllib.urlencode({'search':'search index=indexname sourcetype=sourcename'}))[1]
print searchjob
最后一次打印将继续打印所有结果,直到完成。对于大型查询,我会得到“内存错误”。我需要能够以块(比如50000)的形式读取结果,并将其写入一个文件,并重置searchjob的缓冲区。我怎样才能做到这一点
//assume i have authenticated to splunk and have a session key
base_url = "http://splunkhost:port"
search_job_urn = '/services/search/jobs/export'
myhttp = httplib2.Http(disable_ssl_certificate_validation=True)
searchjob = myhttp.request(base_url + search_job_urn, 'POST', headers=
{'Authorization': 'Splunk %s' % sessionKey},
body=urllib.urlencode({'search':'search index=indexname sourcetype=sourcename'}))[1]
print searchjob