Asp.NET Core 如何使用ElasticSearch和Kibana创建仪表板

48280ba3028ce76e717986eec2d332be.png
图片

在我以前的文章(这里是第一[1]篇和第二篇[2])中,我展示了ElasticSearch作为电子商务中的全文搜索引擎的使用,一些高级配置的设置和使用以及products包含所有内容的索引的创建保存的产品。

出于演示目的,我们使用Bogus库来动态生成产品,并使用NEST库来处理ElasticSearch索引上的CRUD。

我们的模型产品类定义为:

public class Product
{public int Id { get; set; }public string Ean { get; set; }public string Name { get; set; }public string Description { get; set; }public Brand Brand { get; set; }public Category Category { get; set; }public Store Store { get; set; }public decimal Price { get; set; }public string Currency { get; set; }public int Quantity { get; set; }public float Rating { get; set; }public DateTime ReleaseDate { get; set; }public string Image { get; set; }public List<review> Reviews { get; set; }
}

其中品牌,类别,商店,评论和用户类别分别是:

public class Brand
{public int Id { get; set; }public string Name { get; set; }public string Description { get; set; }
}public class Category
{public int Id { get; set; }public string Name { get; set; }public string Description { get; set; }
}public class Store
{public int Id { get; set; }public string Name { get; set; }public string Description { get; set; }
}public class Review
{public int Id { get; set; }public short Rating { get; set; }public string Description { get; set; }public User User { get; set; }
}public class User
{public int Id { get; set; }public string FirstName { get; set; }public string LastName { get; set; }public string IPAddress { get; set; }public GeoIp GeoIp { get; set; }
}

GeoIP是NEST库中用于地理数据的类。下一步是创建一个可以显示产品的仪表板,并对产品进行所进行的研究以详细介绍或减少高级统计信息。

我们决定使用Kibana[3],而不是开发耗时费力的定制解决方案。它处理作为ElasticSearch堆栈一部分的前端应用程序,使我们可以查看数据并搜索所有索引数据并跟踪查询的负载。

Kibana还可以用于监视,管理和保护同一堆栈。

e995cbcfec01653b6b67f1f18a8d91f3.png
图片

要安装和配置它,只需转到页面https://www.elastic.co/downloads/kibana。在这里,我们可以找到所有平台的安装程序,然后下载适合我们需求的安装程序。

一旦下载并解压缩到给定的文件夹(在我们的示例中为C:\ ElasticSearch \ Kibana)中,我们打开config / kibana.yml文件,并将elasticsearch.hosts参数设置为指向我们的ElasticSearch实例(对于本地版本http://本地主机:9200):

elasticsearch.hosts: ["http://localhost:9200"]

让我们运行bin / kibana.bat并从浏览器页面打开http:// localhost:5601。我们得到的页面如下:

ee193690fb0a5743b57e598207b56fd2.png
图片

Kibana界面分为几个部分。

在开源版本中,包括:发现(数据交互式探索),可视化(图形,表格,标签中的数据分析),仪表板(复杂的数据视图),画布(文档创建),地图(地理参考数据分析),开发工具(处理和分析查询的工具)和管理(索引和群集管理)。

我们还可以安装X-Pack插件以使用“图形”和“监视”部分。

让我们转到管理-> Elasticsearch->索引管理部分,以验证是否已正确检测到Elasticsearch索引:

757b9a9583cd4cd35612d4828f092d0c.png
图片

我们可以找到products索引并验证其映射和与数据模型的匹配:

964a1696f27d7436b7f24b7fd89ba2e2.png
图片

要创建一个Kibana索引,只需转到“管理”部分->“ Kibana->索引模式”,然后输入文本,即可将新索引链接到一个或多个ElasticSearch索引。

在本例中,我们键入products,以创建我们的Kibana索引。

f24c8d78072c7961964ce20ffbe9eaf6.png
图片

创建索引后,可以在“发现”部分中按日期或一个或多个字段过滤数据:

c39d92cffef8df135c61f31caf07970a.png
图片

使用搜索栏,我们可以使用KQL语言(Kibana查询语言)在产品之间进行查询,这使您可以使用自动完成功能轻松查询。例如,我们可以输入:

category.name : Games AND rating > 0.5

了解游戏类别中所有评分高于0.5的产品。

您可以选择一些字段并将其添加到“选定的字段”中,以便获得自定义结果视图。

添加索引并验证查询的正确性后,我们可以创建新的数据视图。

可视化由各种类型的图形(条形图,蛋糕),表格,指标,指标和标签云组成。当然,它们支持数据聚合。

在“可视化”部分,我们可以使用图形来创建新的数据可视化。

e4f3caae2f0a15967595c50886e852af.png
图片

出于统计目的,我们使用简单的垂直条形图创建了一些按类别,品牌分组的产品图。我们得到的结果类似于:

05cb61da87acc994b7c4247586d811a6.png
图片

您也可以向此视图添加过滤器。例如,在我们的情况下,我们只想查看商店中可用的产品,因此我们quantity > 0在过滤器栏中键入。然后单击“保存”按钮以保存我们的视图。

另一个有用的可视化是按价格范围的产品视图。在这种情况下,我们在价格字段中定义存储桶,并将其用于饼图。让我们按以下价格范围划分产品:

0 50

50 100

100 200

200 400

400 800

800

我们可以得到类似于以下结果:

f9f76bf96f8ab5c86e209012c7f223ee.png
图片

我们还可以添加一些子桶以具有聚合数据和嵌套的可视化效果。

在“地图”部分中,我们可以使用“弹性地图”(多层地图)显示地理参考数据。

我们可以单击“添加”层,通过选择包含地理参考信息的字段(在我们的示例中geoIp.location)将数据添加到索引中。 

6858e5da86254bdc49e09b71e21f8e0c.png
图片

创建了所需的所有视图后,我们将继续执行第一个仪表板。最后一个是一组视图,搜索和地图,通常实时更新,从而提供有关索引数据的高级信息。

在“仪表板”部分,让我们单击“创建新仪表板”,然后单击“添加”并选择创建的视图:

5255cc84c13d98528bc013f5082eb334.png
图片

让我们全部添加它们并将它们排列在仪表板布局上。我们可以获得这样的结果:

63041a52034338ac6d853400f9580ac0.png
图片

仪表板可以通过KQL查询进行过滤,并且视图始终是动态的。我们还可以通过iframe在Web应用程序中共享和集成它们。如果点击共享->复制iframe代码,我们将获得这样的链接:

<iframe src="http://localhost:5601/app/kibana#/dashboard?embed=true" height="600" width="800"></iframe>

Kibana的另一个有趣功能是Canvas。它使用一种查看和呈现数据的工具来显示实时数据,并将其与颜色,图像和文本结合在一起以创建动态视图。

在“画布”部分中,让我们单击“创建工作台”,然后开始添加指标。在我们的案例中,我们为产品和可用商品,品牌和类别设置参数,为品牌-类别对设置饼图,并按品牌划分商品平均价格。

b9472783bb78a5244b47b29312f76be7.png
图片

创建后,工作台可以共享为JSON文件或下载为PDF报告。

其他有趣的功能是:

•机器学习:允许您检查数据中的异常并使用规范化数据创建新索引;•图形:使您可以查看索引对象之间的连接;•日志:用于查看和管理我们应用程序的日志数据,并可能实时检查异常情况:•REST API:允许您通过HTTP与Kibana引擎进行通信并管理我们的仪表板;•APM:允许您实时监视服务,应用程序和相关性能;•开发工具:一组用于与数据进行交互的工具,包括控制台和搜索分析器。

结论

在本文中,我们向您展示了如何使用Kibana来处理,管理和从ElasticSearch引擎中获得最佳收益。

希望我们引起您对该主题的兴趣。

此处提供了带有本文中使用的代码的示例项目:https[4] : //github.com/enricobencivenga/ProductElasticSearchAdvanced[5]

References

[1] 第一: https://www.blexin.com/en-US/Article/Blog/How-to-integrate-ElasticSearch-in-ASPNET-Core-70
[2] 第二篇: https://www.blexin.com/en-US/Article/Blog/ElasticSearch-advanced-features-80
[3] Kibana: https://www.elastic.co/kibana
[4] https: https://github.com/enricobencivenga/ProductElasticSearchAdvanced
[5] //github.com/enricobencivenga/ProductElasticSearchAdvanced: https://github.com/enricobencivenga/ProductElasticSearchAdvanced

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296087.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

男女共厕,考验男生心理素质的时候到了......

1 假期里你都干了啥&#xff1f;▼2 有猫饼▼3 奥特曼&#xff1a;我不会错过&#xff01;▼4 自绝式单身▼5 我信了▼6 意外的惊喜▼7 画面太美我不敢看▼你点的每个赞&#xff0c;我都认真当成了喜欢

基于MySQL的高可用可扩展架构探讨

随着信息量飞涨&#xff0c;信息的存储成为了这个时代至关重要的一项技术。如何来保证数据存储技术能够适应信息量的增长速度和我们对信息的高度依赖&#xff0c;成为一个非常重要的课题。本文将从数据库架构的层面&#xff0c;通过以开源的数据存储软件来构建分布式数据层的思…

有趣分享:国内产业图谱

IT有趣分享”Microsoft 市值又重新登上全球第一当地时间21年10月29号周五美股收盘微软市值重新登上全球第一&#xff0c;约为2.46万亿美元&#xff0c;超越苹果2.43万亿美元&#xff0c;成为全球市值第一公司。相当于深圳21年前三季度的gdp的总和的两倍。有趣的是专门有人做了公…

性冷淡风的麻将,获红点奖!网友:没有烟火气了

全世界只有3.14 % 的人关注了爆炸吧知识在这个消费升级的时代很多产品都被重新设计着最近&#xff0c;一款麻将引发大家热议有人说惊艳也有人说太冰冷&#xff0c;没了烟火气设计者是THE 90s LAB台湾的一个90后团队这副麻将的名字很洋气叫做&#xff0c;马丘Machill读起来&…

c语言md5函数 linux,Linux下C语言计算文件的md5值(长度32)

google了好久都没有找到合适的&#xff0c;其实我只需要一个函数&#xff0c;能计算文件的 md5 值就好&#xff0c;后来找到了 md5.h 和 md5.c 的源文件&#xff0c;仿照别人的封装了个函数(他那个有问题&#xff0c;和 md5sum 计算出来的都不一样)。废话少说&#xff0c;直接贴…

图片的旋转

主要运用了Matrix类&#xff0c;postRotate()方法和postScale()方法&#xff1b; Matrix&#xff1a;中文是矩阵的意思&#xff0c;主要用于图片的缩放&#xff0c;平移与旋转&#xff1b; postRotate()用于旋转&#xff0c;postScale()用于缩放&#xff1b; 具体MianAvtivity代…

让 AI 为你写代码 - 体验 Github Copilot

前几天在群里看到有大神分享 Copoilot AI 写代码&#xff0c;看了几个截图有点不敢相信自己的眼睛。今天赶紧自己也来体验一下 Copoilot AI 写代码到底有多神奇。申请 现在 Copoilot 还处在预览阶段&#xff0c;想要体验需要先申请。等待大概一晚会收到邮件提示申请试用成功&am…

这个24岁北航博士刚毕业就受聘211大学副教授,他大一就保研,学术能力太牛了.........

全世界只有3.14 % 的人关注了爆炸吧知识本文综合整理自&#xff1a;量子位、微言航语近日&#xff0c;有一个人的“朋友圈”在朋友圈火了。别误会&#xff0c;超模君可没在玩套娃游戏。截图给大家搬来了&#xff0c;快看你没看错&#xff01;1996年出生&#xff0c;今年24岁&am…

英特尔傲腾内存linux,英特尔傲腾内存怎么样?intel傲腾内存优点和缺点你知道吗?...

英特尔傲腾内存在前一段时间正是发布&#xff0c;对于英特尔内存的性能不少用户一无所知&#xff0c;那么英特尔傲腾内存怎么样&#xff1f;都有哪些优点和缺点&#xff1f;下面装机之家小编来为大家解读下。优点1&#xff1a;3D XPoint随机读取性能强傲腾使用了不同于普通固态…

零代码平台中的服务编排思路

先打个广告&#xff0c;我们的第三场零代码实践的直播在本周五&#xff08; 11 月 5 日 &#xff09;晚8点准时开始&#xff0c;扫描下面二维码&#xff0c;直接预约直播&#xff0c;到时间微信会自动提醒。随着企业数字化转型的进程加快&#xff0c;零代码平台的的应用越来越广…

日本原装进口雪平锅,1台顶4台,有它谁还点外卖?

▲ 点击查看小爆我虽然热爱烹饪&#xff0c;但不得不说「下厨房」&#xff0c;也是个坑。光是锅&#xff0c;我就要买好几个。为了蒸包子馒头买蒸锅&#xff0c;为了炒菜买炒锅&#xff0c;偶尔想精致喝热牛奶又买了小奶锅&#xff0c;为了煲汤、做点卤味解解馋&#xff0c;买炖…

如何评价一个开源项目——价值流网络

本文由X-lab开放实验室博士生赵生宇原创出品该篇博客继续之前关于活跃度和协作影响力的介绍继续展开&#xff0c;希望可以在解决协作影响力无法容纳更多数据&#xff0c;从而可以更全面衡量开源生态的同时&#xff0c;也引入一种高可扩展的数学模型&#xff0c;可以在任意时间快…

【翻译】C#编程语言和JAVA编程语言的比较(下)

原文地址&#xff1a;http://www.25hoursaday.com/CsharpVsJava.html 6、集合 许多有名的编程语言都会包含一个集合框架&#xff0c;框架一般由各种用于保存数据的数据结构和配套的操作对象的算法构成。集合框架的优势是让开发者可以不用写数据结构和排序算法&#xff0c;把精力…

物理太难?这些虚拟动图,让你看懂物理

全世界只有3.14 % 的人关注了爆炸吧知识&#xff08;刻度尺的使用&#xff09;&#xff08;测量平均速度实验&#xff09;&#xff08;声音的产生&#xff09;&#xff08;温度计的使用&#xff09;&#xff08;晶体和非晶体的熔化&#xff09;&#xff08;光的反射&#xff09…

linux http 分析工具,技术|httpstat:一个检查网站性能的 curl 统计分析工具

httpstat 是一个 Python 脚本&#xff0c;它以美妙妥善的方式反映了 curl 统计分析&#xff0c;它是一个单一脚本&#xff0c;兼容 Python 3 &#xff0c;在用户的系统上不需要安装额外的软件(依赖)。从本质上来说它是一个 cURL 工具的封装&#xff0c;意味着你可以在 URL 后使…

微软 Ignite 大会 PowerBI 划重点

2021 年 11 月 2 日&#xff0c;微软举办 Ignite 大会&#xff0c;其中关于 Power BI 有哪些重点&#xff0c;带给你了解。摘要Power BI 和 Power Point 将原生整合。Power BI 和 Teams 将更深入整合。Power BI 云端数据集推出自动聚合。Power BI 数据模型推出混合表。Power BI…

美女晕倒怎么办?二哈:这不是一滋就醒......

1 永远不要质疑二哈▼2 睡觉也不耽误练功▼3 谁还没为数学考试受过伤呢&#xff1f;▼4 可能我的嘴巴安装了笑话过滤器吧▼5 我书读得少&#xff0c;你别吓唬我▼6 希望狗没事儿▼7 海王的微信壁纸事实证明&#xff0c;会计确实不赚钱▼你点的每个赞&#xff0c;我都认真…

linux at java,Linux-Tutorial/Java-bin.md at master · linsanityHuang/Linux-Tutorial · GitHub

Java bin 目录下的工具JVM 内存结构运行时数据区(JVM 规范)VM 栈(JVM 虚拟机栈)是线程私有的&#xff0c;它的生命周期和线程相同。它描述的是 Java 方法执行的内存模式。Java 堆区(Heap)是 Java 虚拟机所管理的内存中最大的一块。是被所有线程共享的一块内存区域&#xff0c;在…

15℃!人类首次实现高压下室温超导,研究登上Nature封面

全世界只有3.14 % 的人关注了爆炸吧知识本文转自&#xff1a;机器之心今天一项新纪录&#xff0c;轰动整个物理界。「室温超导有可能实现吗&#xff1f;」这个问题困惑了人们许多年。而最新一期的 Nature 杂志封面研究给出了肯定的答案&#xff0c;该研究制造出了第一个无需冷却…

【ACR2015】依那西普按需维持治疗策略有效抑制RA骨破坏进展

标签: 类风湿关节炎; 依那西普; 药物减停; 复发重治 对RA疾病复发患者, 依那西普按需治疗与持续足剂量治疗是否存在疗效差异&#xff1f; Inui K, et al. ACR 2015. Presentation ID: 477. 背景/目的: 生物DMARDs&#xff08;bDMARDs&#xff09;对RA治疗而言非常重要, 尤其对…