Azure Data Explorer(Kusto)学习笔记
Azure Data Explorer 指南
Azure在2018年推出了Data Explorer产品,提供实时海量流数据的分析服务(非流计算),面向应用、网站、移动端等设备。
用户可以查询,并交互式地对结果进行分析,以达到提升产品、增强用户体验、监控设备、用户增长等目的。其中提供一些机器学习函数,能够进行异常、模式识别、并且发现数据中的趋势。
该服务面向秒-分钟级拿到结果的场景,类OLAP,对TP场景不敏感。
产品起源
Azure Data Explorer(ADE)内部代号叫Kusto,在Kusto之前,Azure对监控和分析场景散落在各产品中,例如:Log Analytics、Application Insight,Azure Monitor,Time Series Insight,这些产品在用不同的技术架构来解决不同数据源等问题,例如:
通过PerfCounter和Event通过流数据进行聚合告警
利用通用计数器写入时序数据库,配置实时Dashboard
把应用数据写到数仓做深入分析
ADE的目标是对上层预定义计算、后计算做一层抽象:将原始数据进行通用存储,保留一段时间(例如几个月),对这些多样化数据进行快速的多维分析。
ADE在微软的内部代号为Kusto,由以色列研发团队提供。Azure Log Analytics开始选型是Elastic Search,每年付1M$用来获得支持,但效果不好,因此在2015年时对日志、Metric场景使用Kusto来提供,包括之前在cosmosDB中的分析工作。
截止 September 2018 的数据:
hundreds of teams within Microsoft
41 Azure regions as 2800 Engine+DM cluster pairs
about 23000 VMs.
overall data size stored in Kusto and available for query is 210 petabytes
6 petabytes ingested daily.
around 10 billion queries per month.
可以推测平均存储时间为:210 (PB) / 6 (PB) = 35 天
产品定义
面向数据类型是Immutable Data,特点是AppendOnly,并且大部分都是Semi-Structure Data,例如User Click Log,Access Log等。Big Data理论中90%都是这类数据,这也是Big Data理论数字化并洞察物理时间的基础。
从Facebook等数据来看,2017年时每天用户产生的视频(UGC)大约在10PB,但用户点击产生的日志量已经远远超过10PB这量,对视频网站而言,内容数据增量少于点击日志的增量已成为通用的规律。
Azure在宣传时这样定义自己的产品:
fast, fully managed data analytics service for real-time analysis on large volumes of data streaming from applications, websites, IoT devices, and more.
产品主要解决三类问题:
Customer Query (Advance Hunting)
Interactive UI (前者封装)
Background Automation(定时任务)
也有一些解释基于几个交互式产品来解释:底层是实时OLAP,上层是Jupiter(交互式) + Kibana(可视化)
从产品定位角度考虑,ADE处于中间层次(利用人的交互式分析能力进行发掘与探索):
integrates with other major services to provide an end-to-end solution
pivotal role in the data warehousing flow by executing the EXPLORE step of the flow on terabytes of diverse raw data
除此之外ADE(Kusto)是
azure application insight, log analytics 基础
为Azure Monitor, Azure Time Series Insights, and Windows Defender Advanced Threat Protection提供数据服务
提供REST API, MS-TDS, and Azure Resource Manager service endpoints and several client libraries
数据模型与API
ADE以实例方式给用户付费,用户购买一组实例后可以创建:
Database
Table:存储实例,包含Schema(表结构和字段类型),Mapping(如何从CSV、Avro等格式映射)
Functions:自定义函数,利用scalar语言可以定义自定义方法,方便后期处理
整个API只有一组接口,通过类KQL方法来管理控制流与数据流,控制流以”.”作为开头,例如 “.create table”。数据分析语言除了KQL外还支持SQL:
TSQL: https://docs.microsoft.com/en-us/azure/kusto/api/tds/t-sql
KQL: https://docs.microsoft.com/en-us/azure/kusto/query/index
以下是一些案例:
创建:
.create table MyLogs ( Level:string, Timestamp:datetime, UserId:string, TraceId:string, Message:string, ProcessId:int32 )
创建或追加:
.create-merge tables MyLogs (Level:string, Timestamp:datetime, UserId:string, TraceId:string, Message:string, ProcessId:int32), MyUsers (UserId:string, Name:string)
.alter column ['Table'].['ColumnX'] type=string
更改列行为后,之前数据会变成Null,建议把数据筛选出来写入新的Table
映射关系:
.create table MyTable ingestion csv mapping "Mapping1" '[{ "Name" : "rownumber", "DataType":"int", "Ordinal" : 0},{ "Name" : "rowguid", "DataType":"string", "Ordinal" : 1 }]’
.create table MyTable ingestion json mapping "Mapping1" '[{ "column" : "rownumber", "datatype" : "int", "path" : "$.rownumber"},{ "column" : "rowguid", "path" : "$.rowguid" }]'
.ingest into table T ('adl://contoso.azuredatalakestore.net/Path/To/File/file1.ext;impersonate') with (format='csv’)
.set RecentErrors <| LogsTable | where Level == "Error" and Timestamp > now() - time(1h)
.ingest inline into table Purchases <| Shoes,1000 Wide Shoes,50 "Coats, black",20 "Coats with ""quotes""",5
.export async compressed to csv ( h@"https://storage1.blob.core.windows.net/containerName;secretKey", h@"https://storage1.blob.core.windows.net/containerName2;secretKey" ) with ( sizeLimit=100000, namePrefix=export, includeHeaders=all, encoding =UTF8NoBOM )
<| myLogs | where id == "moshe" | limit 10000
.export async to sql MySqlTable
h@"Server=tcp:myserver.database.windows.net,1433;Database=MyDatabase;Authentication=Active Directory Integrated;Connection Timeout=30;"
<| print Id="d3b68d12-cbd3-428b-807f-2c740f561989", Name="YSO4", DateOfBirth=datetime(2017-10-15)
.set table Employees policy ingestiontime true
Employees | where cursor_after('')
Employees | where cursor_after('636040929866477946') // -> 636040929866477950
Employees | where cursor_after('636040929866477950') // -> 636040929866479999
Employees | where cursor_after('636040929866479999') // -> 636040939866479000
Tagging(用来管理Extent)
.ingest ... with @'{"tags":"[\"drop-by:2016-02-17\"]"}' .drop extents <| .show table MyTable extents w
Azure Data Explorer(Kusto)学习笔记相关推荐
- 用KUSTO查询语句(KQL)在Azure Data Explorer Database上查询LOG实战
目录 (一)前言 (二)Azure Data Explorer介绍及应用 1. 什么是Azure Data Explorer? 2. 实战案例 (1)案例背景 (2)进入Azure Data Expl ...
- azure_面向初学者的Azure Data Explorer
azure This article discusses what exactly an Azure Data Explorer is and its important features. We w ...
- sql azure 语法_在Azure Data Studio中学习用于SQL Notebook的Markdown语言
sql azure 语法 Microsoft supports SQL Notebooks in Azure Data Studio. It is an exciting feature that a ...
- [Big Data - Kafka] kafka学习笔记:知识点整理
一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余:消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险.许 ...
- 数据分析---《Python for Data Analysis》学习笔记【04】
<Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...
- Goland自定义头部注释,增加author和data等(学习笔记,不作教程)
- sql azure 语法_在Azure Data Studio中计划SQL笔记本
sql azure 语法 SQL Notebooks are an interactive way of creating documents, executing T-SQL queries alo ...
- 《R数据科学》学习笔记|Note5:使用dplyr进行数据转换(下)
点击蓝字 关注我! 写在前面 本系列为<R数据科学>(R for Data Science)的学习笔记.相较于其他R语言教程来说,本书一个很大的优势就是直接从实用的R包出发,来熟悉R及数据 ...
- Vue2.0学习笔记二 基础语法
1. Mustache语法 Mustache语法也叫插值表达式,Mustache语法式通过{{}}渲染到页面,并且数据是响应式的. 数据的响应式:数据的变化导致页面的内容随之变化 效果图: 2. 指令 ...
最新文章
- mysql二进制还原表_MYSQL 二进制还原
- WinFrom子窗体向父窗体传值
- 关于使用QQ、新浪微博、腾讯微博等第三方登录网站的开发过程(一)
- liferay 导入源码问题
- 爱因斯坦为什么不是普通人?看他怎么喝茶就明白了,差距太明显了!没法比.......
- 【需求工程】需求工程
- 如何在windows下安装Python(Python入门教程)
- 电脑打字学习_新手如何学会电脑打字 走上盲打之路
- netcore里使用jwt做登陆授权
- shell 字符串中是否包含任一字符串
- Scipy总结(constants)
- 校园网页设计成品 学校班级网页制作模板 大学生静态HTML网页源码 dreamweaver网页作业 简单网页课程成品
- 喜讯!清华大学镜像站恢复anaconda加速
- 微信oauth2.0授权
- 批量下载网页图片,python只需23行代码
- 英语学习者的十句经典名言
- 老郑学长 | 天津师范大学体育硕士怎么样
- 为什么计算机学硕人那么少,考研分数看似不高,为什么考上的人相对很少?总结得很精辟...
- 【NXP出品PINS-TOOL-IMX】IMX6ULL引脚配置工具PINS-TOOL-IMX介绍
- 安卓ios文件上传.net 服务器,Windows 和 iOS 13无缝传输文件最快的方案
热门文章
- 2018 java蓝桥杯校赛题目
- H5新人福音~零配置搭建现代化的前端工程
- 12、OpenCV Python 图像梯度
- python 运维自动化之路 Day2
- jQuery之ajax的跨域获取数据
- 利用线性代数的方法求斐波那契数列的通项
- 开始-运行 下常用快捷命令
- Jelinek-Merer与Absolute discounting 平滑方法
- 如何去掉文章里的非关键词c++_B2B/B2C网站:文章标题如何写才能促进搜索排名...
- python爬取bilibili弹幕_python爬虫:bilibili弹幕爬取+词云生成