我正在使用Azure日志分析工作区和自定义表,并根据github上的示例代码将一些数据发送到这个表中,即使用日志摄取API和DCR等。
一切正常。我可以很好地发送数据,除了当我更新这个自定义表并向其中添加新列,然后尝试根据它发送数据时。
数据被写入到表中之前定义的列,但不是新添加的列,它永远不会被写入。看起来它被丢弃或忽略了。
例如;
1.使用此示例数据创建表
{“rowid”:“1112223334440000”,“col1”:“data1”,“col2”:“data2”,“col3”:123
1.基于示例代码发送数据
1.更新表模式并添加col 0
1.再次发送数据,但现在使用col 0数据。
我相信在这个日志分析表中输入的任何新数据都应该填充,但在我的例子中没有。我试过很多次,等了好几个小时,但它从来没有为我工作。
以下是我的代码以防万一;
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}")
下面是表模式;
有人能解释一下为什么这不起作用吗?
谢谢你的时间。
1条答案
按热度按时间vltsax251#
我已经尝试了相同的代码,你执行。
这里我们可以看到列已更新,但数据在内部受到影响。