【问题标题】:KUSTO split txt when ingesting摄取时 KUSTO 拆分 txt
【发布时间】:2021-10-05 09:00:04
【问题描述】:

我使用以下命令在 Azure 数据资源管理器中创建了一个表:

.create table MyLogs ( Level:string, Timestamp:datetime, UserId:string, TraceId:string, Message:string, ProcessId:int32 )

然后我创建了我的存储帐户 --> 容器,然后我上传了一个包含以下内容的简单 txt 文件

Level Timestamp UserId TraceId Message ProcessId

然后,我为包含该 txt 文件的容器生成了一个 SAS,并用于我的 Azure 数据资源管理器的查询部分,如下所示:

.ingest into table MyLogs (
h'...sas for my txt file ...')

现在,当我阅读表格时,我看到了类似的内容

Level                                            TimeStamp  UserId  TraceID  MEssage ProcessId
Level Timestamp UserId TraceId Message ProcessId

所以它基本上把所有的内容都放在了第一列。 我期待一些自动拆分。我尝试使用制表符、空格、逗号和许多其他分隔符。 我尝试用 csv 格式配置注入映射,但没有运气。

据我了解,txt 中的每一行都是表格中的新行。但是如何用一些特定的分隔符分割同一行呢?

我阅读了很多页的文档,但没有运气

【问题讨论】:

    标签: azure azure-data-explorer azure-storage-account


    【解决方案1】:

    您可以使用 format 参数指定要尝试的任何格式,请参阅list of formats 和指定格式here 的摄取命令语法示例

    此外,您可以在网页界面使用“one click ingestion”。

    【讨论】:

      【解决方案2】:

      这应该可以工作(我以前用 Python SDK 做过)

      .create table MyLogs ingestion csv mapping 'MyLogs_CSV_Mapping' ```
      [
        {"Name":"Level","datatype":"datetime","Ordinal":0}, 
        {"Name":"Timestamp","datatype":"datetime","Ordinal":1},
        {"Name":"UserId","datatype":"string","Ordinal":2}, 
        {"Name":"TraceId","datatype":"string","Ordinal":3}, 
        {"Name":"Message","datatype":"string","Ordinal":4}, 
        {"Name":"ProcessId","datatype":"long","Ordinal":5}
      ]```
      

      https://docs.microsoft.com/de-de/azure/data-explorer/kusto/management/data-ingestion/ingest-from-storage

      .ingest into table MyLogs SourceDataLocator with (
         format="csv",
         ingestionMappingReference = "MyLogs_CSV_Mapping"
      )
      

      希望这会有所帮助:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-28
        • 2022-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多