2016-10-05 7 views
1

私はレポートを表示するために一週間以上 enter image description hereAzureの検索統計パワーBI

によって現在の設定でAzureの検索の統計情報を収集するために、ストレージアカウントを使用して電源BIよ。問題は、私が20日間のデータをインポートしているときでさえ、私が選択している期間に関係なく、 "時間をかけて検索"レポートでそれを見ることはできませんが、1日だけです。 enter image description here enter image description here

報告書のこの種のデータのインポートまたは/および日付範囲選択の正しい方法は何ですか?ありがとう

+0

淡色のストレージに生データが表示されますか?ダッシュボードにフィルタをアクティブにしていますか? – Berni

+0

できます。これは、私の生の日付が "m = 10"フォルダ(私は10月だと思います)のstirageアカウントフォルダのように見えます。ブロブで –

+0

できます。これは、私の生の日付がブロブの「m = 10」フォルダ(私は10月だと思う)のストレージアカウントのフォルダのように見えます https://tohomestorage.blob.core.windows.net/images/4.jpg さらに、他のレポートにはデータがあります。私は9月28日から "時間をかけて検索クエリ"の統計を見ることができます - その日、私はデータを収集し始めます。 9月28日以降のフィルタオプションを選択しても、「時間の経過に関する情報の検索」レポート –

答えて

2

この問題は、無効なエスケープシーケンス(¥^および¥〜)を含む検索語句のクエリによって発生し、JSONパーサーが失敗する原因となります。

これはPower BIコンテンツパックの制限事項です。

  • がクエリ
  • JSONブロブ自体
  • から問題のある文字を削除を送信する前に、クエリ
  • バックスラッシュ(\)をエスケープを送信する前にバックスラッシュを削除します。オプションは以下の通りです、それ動作させるために

これらのオプションが機能しない場合、Power BIコンテンツパックを使用することはできませんが、Power BIデスクトップでデータを分析することはできます。以下は、JSONパーサーのエラー処理を追加するクエリです。

  • ACCOUNTNAME:あなたのストレージアカウントの名前を、このアプローチの限界は、それが唯一の問題のクエリ

    パワーBIデスクトップクエリがあります場合でも、フルファイル(データの1時間)を無視するということです

  • DAYSデータ
let Source = AzureStorage.Blobs("https://ACCOUNTNAME.blob.core.windows.net"), 
    #"insights-logs-operationlogs" = Source{[Name="insights-logs-operationlogs"]}[Data], 
    #"Sorted Rows" = Table.Sort(#"insights-logs-operationlogs",{{"Date modified", Order.Descending}}), 
    #"Filtered Rows" = Table.SelectRows(#"Sorted Rows", each Date.IsInPreviousNDays([Date modified], DAYS) or DateTime.Date([Date modified]) = DateTime.Date(DateTimeZone.UtcNow())), 
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Name", "Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path"}), 
    #"Parsed JSON" = Table.TransformColumns(#"Removed Columns",{},Json.Document), 
    #"Replaced Errors1" = Table.ReplaceErrorValues(#"Parsed JSON", {{"Content", ""}}), 
    #"Filtered Rows1" = Table.SelectRows(#"Replaced Errors1", each [Content] <> null and [Content] <> ""), 
    #"Expanded Content" = Table.ExpandRecordColumn(#"Filtered Rows1", "Content", {"records"}, {"records"}), 
    #"Expanded records" = Table.ExpandListColumn(#"Expanded Content", "records"), 
    #"Expanded records1" = Table.ExpandRecordColumn(#"Expanded records", "records", {"time", "resourceId", "operationName", "operationVersion", "category", "resultType", "resultSignature", "durationMS", "properties"}, {"time", "resourceId", "operationName", "operationVersion", "category", "resultType", "resultSignature", "durationMS", "properties"}), 
    #"Expanded properties" = Table.ExpandRecordColumn(#"Expanded records1", "properties", {"Description", "Query", "IndexName", "Documents"}, {"Description", "Query", "IndexName", "Documents"}), 
    #"Renamed Columns" = Table.RenameColumns(#"Expanded properties",{{"time", "Datetime"}, {"resourceId", "ResourceId"}, {"operationName", "OperationName"}, {"operationVersion", "OperationVersion"}, {"category", "Category"}, {"resultType", "ResultType"}, {"resultSignature", "ResultSignature"}, {"durationMS", "Duration"}}), 
    #"Added Custom2" = Table.AddColumn(#"Renamed Columns", "QueryParameters", each Uri.Parts("http://tmp" & [Query])), 
    #"Expanded QueryParameters" = Table.ExpandRecordColumn(#"Added Custom2", "QueryParameters", {"Query"}, {"Query.1"}), 
    #"Expanded Query.1" = Table.ExpandRecordColumn(#"Expanded QueryParameters", "Query.1", {"search", "$skip", "$top", "$count", "api-version", "searchMode", "$filter"}, {"search", "$skip", "$top", "$count", "api-version", "searchMode", "$filter"}), 
    #"Removed Columns1" = Table.RemoveColumns(#"Expanded Query.1",{"OperationVersion"}), 
    #"Changed Type" = Table.TransformColumnTypes(#"Removed Columns1",{{"Datetime", type datetimezone}, {"ResourceId", type text}, {"OperationName", type text}, {"Category", type text}, {"ResultType", type text}, {"ResultSignature", type text}, {"Duration", Int64.Type}, {"Description", type text}, {"Query", type text}, {"IndexName", type text}, {"Documents", Int64.Type}, {"search", type text}, {"$skip", Int64.Type}, {"$top", Int64.Type}, {"$count", type logical}, {"api-version", type text}, {"searchMode", type text}, {"$filter", type text}}), 
    #"Inserted Date" = Table.AddColumn(#"Changed Type", "Date", each DateTime.Date([Datetime]), type date), 
    #"Duplicated Column" = Table.DuplicateColumn(#"Inserted Date", "ResourceId", "Copy of ResourceId"), 
    #"Split Column by Delimiter" = Table.SplitColumn(#"Duplicated Column","Copy of ResourceId",Splitter.SplitTextByEachDelimiter({"/"}, null, true),{"Copy of ResourceId.1", "Copy of ResourceId.2"}), 
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Copy of ResourceId.1", type text}, {"Copy of ResourceId.2", type text}}), 
    #"Removed Columns2" = Table.RemoveColumns(#"Changed Type1",{"Copy of ResourceId.1"}), 
    #"Renamed Columns1" = Table.RenameColumns(#"Removed Columns2",{{"Copy of ResourceId.2", "ServiceName"}}), 
    #"Lowercased Text" = Table.TransformColumns(#"Renamed Columns1",{{"ServiceName", Text.Lower}}), 
    #"Added Custom" = Table.AddColumn(#"Lowercased Text", "DaysFromToday", each Duration.Days(DateTimeZone.UtcNow() - [Datetime])), 
    #"Changed Type2" = Table.TransformColumnTypes(#"Added Custom",{{"DaysFromToday", Int64.Type}}), 
    #"Replaced Errors" = Table.ReplaceErrorValues(#"Changed Type2", {{"search", null}, {"$skip", null}, {"$top", null}, {"$count", null}, {"api-version", null}, {"searchMode", null}, {"$filter", null}}), 
    #"Filtered Rows2" = Table.SelectRows(#"Replaced Errors", each true) 
in 
    #"Filtered Rows2" 
の日数
関連する問題