gpt4 book ai didi

azure - 新添加的列的数据永远不会写入 Log Analytics 工作区中的现有自定义表中

转载 作者:行者123 更新时间:2023-12-03 03:23:00 29 4
gpt4 key购买 nike

我正在将 Azure Log Analytics 工作区与自定义表结合使用,并根据 github 上的示例代码将一些数据发送到此表中。即使用日志摄取 API 和 DCR 等。

一切正常。我可以很好地发送数据,除非我更新此自定义表并向其添加新列,然后尝试根据它发送数据。

先前定义的列的数据会写入表中,但不会写入新添加的列,它永远不会被写入。看起来它被丢弃或忽略了。

例如;

  1. 使用此示例数据创建表格

    {“rowid”:“1112223334440000”,“col1”:“数据1”,“col2”:“数据2”,“col3”:“123”}

  2. 根据示例代码发送数据

  3. 更新表架构并添加 col0

  4. 再次发送数据,但现在使用 col0 数据。

我相信现在应该填充使用 col0 在此日志分析表中输入的任何新数据,但在我的情况下却没有。我尝试了多次,等待了多个小时,但它对我来说从来没有奏效。

这是我的代码,以防万一;

import os
import json
from azure.core.exceptions import HttpResponseError
from azure.identity import DefaultAzureCredential
from azure.monitor.ingestion import LogsIngestionClient

endpoint = os.environ['DATA_COLLECTION_ENDPOINT']
credential = DefaultAzureCredential()

client = LogsIngestionClient(
endpoint=endpoint, credential=credential, logging_enable=True)

rule_id = os.environ['LOGS_DCR_RULE_ID']
body = [
{
"rowid": "1112223334440000",
"col0": "data0",
"col1": "data1",
"col2": "data2",
"col3": "123"
}
]

try:
client.upload(rule_id=rule_id,
stream_name=os.environ['LOGS_DCR_STREAM_NAME'], logs=body)
except HttpResponseError as e:
print(f"Upload failed: {e}")

这是表架构;

enter image description here

有人可以帮忙解释一下为什么这不起作用吗?

感谢您的宝贵时间。

最佳答案

  • 此行为是预期的,因为当您添加新列时,表中现有日志的架构不会自动更新。因此,新列将不会填充现有日志的数据。

  • 修改或重新发送现有日志可能会影响整体数据以及依赖先前日志结构的任何分析或查询。

我已经尝试了与您执行的相同的代码。

enter image description here

在这里我们可以看到列已更新,但数据在内部受到影响。

enter image description here

  • Log Analytics 表不适用于实时架构演变。如果您需要架构灵 active 以及对日志结构的动态更改,您可能需要考虑使用 Azure Data Explorer (ADX),它是一个原生支持架构演变的大数据分析平台。

关于azure - 新添加的列的数据永远不会写入 Log Analytics 工作区中的现有自定义表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76446902/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com