Data Explorer の埋め込みURLから元のクエリを取り出す
概要
Azure Data Explorer (Kusto とも呼びます) は超高速に検索できる強力なデータストアです。お客様と、あるいはチーム内でクエリをシェアするのは、ちょうど数式と解答を一緒に見るのに似ていてとても有用です。
Data Explorer でリンクをシェアすると以下のようなURLがクリップボードに送られます。
https://dataexplorer.azure.com/clusters/クラスタ名.リージョン/databases/データストア名?query=エンコードされた Kusto クエリ
このURLを開くと、ポータルで Kusto クエリが実行されて結果が表示されます。便利。
クエリ文字列をデコードするコード
URLのクエリ文字列中に埋め込まれた Kusto クエリ(ややこしい)は、元の Kusto クエリを ZIP 圧縮したビット列を BASE64 にエンコードしたものです。この部分を取り出して、元の Kusto クエリを取り出すコードを書いてみます。あまり使うことはないとは思いますが。
簡単なので LINQPad でさっくりと。
var s = "<EMBEDDED QUERY GOES HERE>";
var base64 = HttpUtility.UrlDecode(s);
var buffer = new byte[1024];
string queryString = string.Empty;
var e = Convert.FromBase64String(base64);
using (var gz = new GZipStream(new MemoryStream(e), CompressionMode.Decompress))
{
while (true)
{
var len = gz.Read(buffer, 0, buffer.Length);
queryString += Encoding.UTF8.GetString(buffer, 0, len);
if (len < buffer.Length)
{
break;
}
}
}
queryString.Dump();
おわりに
誰得な TIPS を書いてしまった。
Author And Source
この問題について(Data Explorer の埋め込みURLから元のクエリを取り出す), 我々は、より多くの情報をここで見つけました https://qiita.com/superriver/items/4ca2c6ead8a7d19534bc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .