簡體   English   中英

在KUSTO ADX中提取失敗時如何獲取源數據

[英]How to get the Source Data When Ingestion Failure in KUSTO ADX

  1. 我在ADX Kusto DB中有一個base表。

.create table base (info:dynamic)

  1. 我編寫了一個函數,該函數解析( dynamic列) base表並抓取幾列,並在base表從EventHub獲取數據時將其存儲在另一個表中。 以下功能及其更新策略

.create function extractBase() { base | evaluate bag_unpack(info) | project tostring(column1), toreal(column2), toint(column3), todynamic(column4) } .alter table target_table policy update @'[{"IsEnabled": true, "Source": "base", "Query": "extractBase()", "IsTransactional": false, "PropagateIngestionProperties": true}]'

假設base表不包含預期的列,則發生提取錯誤。 如何獲取失敗的來源(行)? 使用.show ingestion failures ,它會顯示失敗消息。 有一個名為IngestionSourcePath的列。 當我瀏覽URL時,出現異常,如Resource Not Found

如果發生提取失敗,則需要將base表的特定行存儲到IngestionFailure表中。 有待進一步調查

在這種情況下,您的源數據不能“不具有”由其架構定義的列。 如果某行中某列未提取任何值,則此處將存在空值,並且更新策略不會失敗。

如果原始表行沒有足夠的列,則更新策略將中斷。 當前,此類錯誤的源數據未作為故障消息的一部分發出。

通常,僅當您從Blob提取數據時,源URI才有用。 在其他情況下,失敗的提取信息中顯示的URI是動態創建的內部Blob上的URI,沒有人可以訪問。

但是,文檔中缺少一個命令(我們將確保對其進行更新),該命令允許您將下一次錯誤提取的源數據復制(轉儲到提供的存儲容器中)到特定表中。

語法為:.dup-next-failed-ingest到TableName中以h @'Azure blob容器的路徑'

此處,Azure Blob容器的路徑必須包含可寫的SAS。 運行此命令所需的權限是DB admin。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM