Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查询日志分析,以便返回所有表名的列表_Python_Python Requests_Adal_Azure Log Analytics_Azure Data Explorer - Fatal编程技术网

Python 查询日志分析,以便返回所有表名的列表

Python 查询日志分析,以便返回所有表名的列表,python,python-requests,adal,azure-log-analytics,azure-data-explorer,Python,Python Requests,Adal,Azure Log Analytics,Azure Data Explorer,我正在使用Python调用针对Azure日志分析工作区的查询。为了提供最大的可伸缩性,我想实现一个查询,返回日志分析工作区中的所有表名。本质上,我希望生成所有表名的列表,以便稍后在python脚本中调用它们 我试过几个不同的问题。例如: Search * | distinct $table 而不是获取表列表,例如: [ { "$table": "ExampleTable" } ] 我收到一条错误消息: {'error': { 'message'

我正在使用Python调用针对Azure日志分析工作区的查询。为了提供最大的可伸缩性,我想实现一个查询,返回日志分析工作区中的所有表名。本质上,我希望生成所有表名的列表,以便稍后在python脚本中调用它们

我试过几个不同的问题。例如:

Search * | distinct $table
而不是获取表列表,例如:

[
  {
    "$table": "ExampleTable"
  }
]
我收到一条错误消息:

{'error': 
    {
           'message': 'The request had some invalid properties', 'code': 'BadArgumentError', 'innererror': 
           {
               'code': 'SyntaxError', 'message': 'Syntax Error'
           }
    }
}
如有任何建议/示例,将不胜感激。谢谢大家!

更新:

在再次访问Azure Log Analytics REST API网站之后,我决定花一些时间玩弄内置的API explorer工具。正是在那里,我能够成功地查询示例工作区中的表列表。我可以通过几个不同的查询来实现这一点:

search * | distinct $table
search * | distinct Type
虽然这两个查询在示例环境中都工作得很好,但在我自己的环境中,它们仍然让我失败。无论是我的python应用程序,还是我的Azure LogicApp,只要我在API资源管理器中发送返回完美结果的相同查询,就会继续收到语法错误。我仍然对这个问题感到困惑。以下是API Explorer的网站,供希望测试此功能的用户使用:

另外,要回答一个显而易见的问题:是的,我已经正确设置了API连接的其余部分。我可以并且确实成功地在Python应用程序和LogicApp工作流中进行其他查询。似乎正是这个特别的问题给了我麻烦

最后,如果有帮助,这是我在进行查询时继续收到的错误消息:

{'error': {'message': 'The request had some invalid properties', 'code': 'BadArgumentError', 'innererror': {'code': 'SyntaxError', 'message': 'Syntax Error'}}}

关于问题的Kusto查询语言部分,
Search
应该是
Search
(小写
s

我没有深入挖掘,但它显然看起来像是Python在您的查询中理解“$”的问题。在这种情况下,我们可能需要显式调用API,让Python转义“$”

然而,您可以使用下面的查询来完成您的需求

search * | distinct Type
另一个注意事项是,由于日志分析查询语言已更改为较新版本,因此请确保使用最新的可用API。新的API文档可在

希望这有帮助!!干杯


注意:如果您认为您的问题已得到回答,请“接受”它,如果只是帮助,请单击“此答案有用”,并提供追加投票。这可能对阅读此线程的其他社区成员有益。

请注意,search*| distinc不会为您提供工作区中的所有表,只提供至少包含一条记录的表。否则,它们将不会出现在搜索*的结果中,因此也不会出现在独特的查询中

请签出此API以获取工作区的架构:


这将显示每个表,按登录到其中的日志数排序。

感谢您的建议;不幸的是,即使你改正了,这个问题仍然存在。我感谢你花时间研究我面临的这个问题。我已经尝试在Python应用程序和LogicApp中实现您的解决方案,我一直在使用LogicApp通过API测试查询。但是,您的解决方案仍然返回相同的错误。但是,我会注意到,在我的LogicApp环境中,我有一些关于此问题的有趣经验。2019年3月5日之前,我能够成功调用此查询,它将返回我需要的结果(所有表名的列表),但是2019年3月5日之后,LogicApp在尝试运行该查询时将失败。代码根本没有更改,所以我只能假设API或查询语言发生了更改。
search "*" | summarize count() by $table | sort by count_ desc