在上一篇文章中,我曾提到Logstash,Kibana和Elasticsearch(ELK堆栈)这三者是最受欢迎的开源解决方案之一,不仅用于日志管理,还用于数据分析。 在本文中,我将演示如何使用ELK高效地执行大数据分析。 作为参考,让我们获取一些巨大的邮箱数据。 邮件档案可以说是最有趣的社交网络数据之一。 它无处不在,每条信息都可以说明人们之间的交流。 作为组织的CXO,您可能需要分析公司邮件的趋势和模式。

作为参考,我将采用著名的Enron语料库,因为它具有大量的邮件,并且没有任何法律或隐私问题的风险。 该数据将被标准化为Unix邮箱(mbox)格式。 从mbox格式开始,它将再次转换为单个json文件。

获取安然语料库数据

可以以各种格式下载原始格式的完整Enron数据集。 我将从数据集的原始原始形式开始,该数据集本质上是一组文件夹,该文件夹按人和文件夹来组织邮箱的集合。 下面的代码片段将说明在下载并取消存档后的语料库的基本结构。 继续进行一些操作,以使您熟悉它。

C:\> cd enron_mail_20110402\maildir # Go into the mail directoryC:\enron_mail_20110402\maildir>dir # Show folders/files in the current directory</pre>
allen-p         crandell-s     gay-r           horton-slokey-t         nemec-g         rogers-b       slinger-rtycholiz-b     arnold-j       cuilla-m       geaccone-t
<pre>               ...directory listing truncated...</pre>
neal-s         rodrique-r     skilling-j     townsend-j
<pre>C:\enron_mail_20110402\maildir> cd allen-p/ # Go into the allen-p folderC:\enron_mail_20110402\maildir\allen-p> dir # Show files in the current directory</pre>
_sent_mail         contacts         discussion_threads notes_inboxsent_items         all_documents     deleted_items     inbox
<pre>sent               straw
C:\enron_mail_20110402\maildir\allen-p> cd inbox/ # Go into the inbox for allen-pC:\enron_mail_20110402\maildir\allen-p\inbox> dir # Show the files in the inbox for allen-p</pre>
<ol><li>11. 13. 15. 17. 19. 20. 22. 24. 26. 28. 3. 31. 33. 35. 37. 39. 40.</li><li>44. 5. 62. 64. 66. 68. 7. 71. 73. 75. 79. 83. 85. 87. 10. 12. 14.</li><li>18. 2. 21. 23. 25. 27. 29. 30. 32. 34. 36. 38. 4. 41. 43. 45. 6.</li>
</ol>
<pre>   63. 65. 67. 69. 70. 72. 74. 78. 8. 84. 86. 9.
C:\enron_mail_20110402\maildir\allen-p\inbox> cat 1. # Show contents of the file named "1."Message-ID: &lt;16159836.1075855377439.JavaMail.evans@thyme&gt;Date: Fri, 7 Dec 2001 10:06:42 -0800 (PST)From: heather.dunton@enron.comTo: k..allen@enron.comSubject: RE: West PositionMime-Version: 1.0Content-Type: text/plain; charset=us-asciiContent-Transfer-Encoding: 7bitX-From: Dunton, Heather &lt;/O=ENRON/OU=NA/CN=RECIPIENTS/CN=HDUNTON&gt;X-To: Allen, Phillip K. &lt;/O=ENRON/OU=NA/CN=RECIPIENTS/CN=Pallen&gt;X-cc:X-bcc:X-Folder: \Phillip_Allen_Jan2002_1\Allen, Phillip K.\InboxX-Origin: Allen-PX-FileName: pallen (Non-Privileged).pstPlease let me know if you still need Curve Shift.Thanks,

现在,下一步是将邮件数据转换为Unix mbox格式。 实际上,mbox只是连接的邮件的大型文本文件,可通过基于文本的工具轻松访问。 我已经使用python脚本将其转换为mbox格式。 此后,此mbox文件将转换为ELK兼容JSON格式。 json文件可以在这里找到。 json文件的片段可以在下面找到:

{"index":{"_index":"enron","_type":"inbox"}}
[{"X-cc": "", "From": "r-3-728402-1640008-2-359-us2-982d4478@xmr3.com", "X-Folder": "\\jskillin\\Inbox", "Content-Transfer-Encoding": "7bit", "X-bcc": "", "X-Origin": "SKILLING-J", "To": ["jeff.skilling@enron.com"], "parts": [{"content": "\n[IMAGE]\n[IMAGE]\nJoin us June 26th for an on-line seminar featuring Steven J. Kafka, Senior Analyst at Forrester Research, as he discusses how technology can create more effective collaboration in today's virtualized enterprise. Also featuring Mike Hager, VP, OppenheimerFunds, offering insights into implementing these technologies through real-world experiences. Brian Anderson, CMO, Access360 will share techniques and provide tips on how to successfully deploy resources across the virtualized enterprise. \nDon't miss this important event. Register now at http://www.access360.com/webinar/ . For a sneak preview, check out our one-minute animation that illustrates the challenges of provisioning access rights across the \"virtualized\" enterprise.\nAbout Access360\nAccess360 provides the software and services needed for deploying policy-based provisioning solutions. Our solutions help companies automate the process of provisioning employees, contractors and business partners with access rights to the applications they need. With Access360, companies can react instantaneously to changing business environments and relationships and operate with confidence, whether in a closed enterprise environment or across a virtual or extended enterprise.\n \nAccess360 \n\nIf you would prefer not to receive further messages from this sender:\n1. Click on the Reply button.\n2. Replace the Subject field with the word REMOVE.\n3. Click the Send button.\nYou will receive one additional e-mail message confirming your removal.\n\n", "contentType": "text/plain"}], "X-FileName": "jskillin.pst", "Mime-Version": "1.0", "X-From": "Access360 <R-3-728402-1640008-2-359-US2-982D4478@xmr3.com>@ENRON", "Date": {"$date": 991326029000}, "X-To": "Skilling, Jeff </o=ENRON/ou=NA/cn=Recipients/cn=JSKILLIN>", "Message-ID": "<14649554.1075840159275.JavaMail.evans@thyme>", "Content-Type": "text/plain; charset=us-ascii", "Subject": "Forrester Research on Best Practices for the \"Virtualized\" Enterprise"}

当您有大量数据要推送到Elasticsearch中时,最好通过指定数据文件来进行批量导入。 每封邮件都在与指定索引(enron)和文档(收件箱)的条目相关的一行中。 无需指定ID,因为Elasticsearch会自动指定ID。

Elasticsearch中的数据可以大致分为两种类型- 精确值全文 。 确切的值正是它们听起来的样子。 示例是日期或用户ID,但也可以包括确切的字符串,例如用户名或电子邮件地址。 例如,精确值Foo与精确值foo不同。 精确值2014与精确值2014-09-15不同。 另一方面,全文是指通常以某种人类语言编写的文本数据,例如推文或电子邮件正文。 出于此练习的目的,最好将电子邮件地址 (收件人,抄送,密件抄送)视为精确值。 因此,我们首先需要指定映射,可以通过以下方式完成。

curl -XPUT “localhost:9200/enron” -d "{
"settings":
{"number_of_shards": 5,"number_of_replicas": 1
},
"mappings":
{"inbox":{"_all":{"enabled": false},"properties":{"To":{
"type": "string",
"index": "not_analyzed" }, "From": { "type": "string", "index": "not_analyzed" }, "CC": { "type": "string", "index": "not_analyzed" }, "BCC": {"type": "string","index": "not_analyzed" } } } }
}"

您可以验证是否确实设置了映射。

curl -XGET "http://localhost:9200/_mapping?pretty"
{"enron" : {"mappings" : {"inbox" : {"_all" : {"enabled" : false},"properties" : {"BCC" : {"type" : "string","index" : "not_analyzed"},"CC" : {"type" : "string","index" : "not_analyzed"},"From" : {"type" : "string","index" : "not_analyzed"},"To" : {"type" : "string","index" : "not_analyzed"}}}}}
}

现在,以以下方式使用json文件加载所有邮箱数据:

curl -XPOST "http://localhost:9200/_bulk" --data-binary @enron.json

我们可以检查是否所有数据都已成功上传。

curl "localhost:9200/enron/inbox/_count?pretty"
{"count" : 41299,"_shards" : {"total" : 5,"successful" : 5,"failed" : 0}
}

您可以看到已经上传了41299条对应于不同消息的记录。 现在,通过对该数据进行一些分析来开始有趣的部分。 Kibana提供了出色的分析功能和相关图表。 让我们尝试查看每周发送多少消息。

上面的直方图显示了每周传播的消息。 日期值以经过纪元的毫秒数为单位。 您可以看到一个特定的星期有3546条消息的高峰。 那个星期一定发生了一些有趣的事情。 现在,让我们看看谁是邮件的主要收件人

您可以看到Gerald,Sara和Kenneth是邮件的顶级收件人。 如何查看最热门的发件人?

您可以看到Pete,Jae和Ken是邮件的主要发送者。 如果您想知道Enron员工究竟用来讨论什么,让我们检查一下邮件主题中的热门关键字。

似乎最有趣的讨论集中在安然,天然气,能源,电力。 使用Enron邮件数据可以进行很多有趣的分析。 我建议您尝试以下方法:

  • 计算特定电子邮件地址的已发送/已接收消息
  • 一条消息的最大收件人数是多少?
  • 哪两个人之间的交流最多?
  • 人对人消息有多少条?

翻译自: https://www.javacodegeeks.com/2016/03/mining-mailboxes-elasticsearch-kibana.html

使用Elasticsearch和Kibana挖掘邮箱相关推荐

  1. data es集群master_Kubernetes Helm3 部署 ElasticSearch amp; Kibana 7 集群

    一.简介 Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索.结构化检索和分析,并能将这三者结合起来.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便,轻松扩 ...

  2. ELK(Logstash+Elasticsearch+Kibana)的原理和详细搭建

    一. Elastic Stack Elastic Stack是ELK的官方称呼,网址:https://www.elastic.co/cn/products ,其作用是"构建在开源基础之上, ...

  3. Elasticsearch介绍Kibana分词器增删改操作

    Elasticsearch Elasticsearch介绍和安装 简介 Elastic Elastic官网:https://www.elastic.co/cn/ Elastic有一条完整的产品线及解决 ...

  4. Elasticsearch 及 Kibana 安装篇

    简介 官网-安装介绍 这里记载了各个软件包的安装方法,Linux Mac Windows-- 本文记载的是在 CentOS 系统安装 Elasticsearch 7.0.0 版本的步骤. 安装 Jav ...

  5. 使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台实践--转载

    原文地址:https://wsgzao.github.io/post/elk/ 另外可以参考:https://www.digitalocean.com/community/tutorials/how- ...

  6. ELK(ElasticSearch+Logstash+ Kibana)搭建实时日志分析平台

    来源:http://www.cnblogs.com/zclzhao/p/5749736.html 一.简介 ELK 由三部分组成elasticsearch.logstash.kibana,elasti ...

  7. [翻译] ASP.NET Core 利用 Docker、ElasticSearch、Kibana 来记录日志

    一步一步指导您使用 ElasticSearch, Kibana, ASP.NET Core 2.1 和 Docker 来记录日志 在本教程中,我将向您展示如何启动和运行 ElasticSearch,K ...

  8. 使用ElasticSearch,Kibana,ASP.NET Core和Docker可视化数据

    原文地址:http://www.dotnetcurry.com/aspnet/1354/elastic-search-kibana-in-docker-dotnet-core-app 想要轻松地通过许 ...

  9. Centos7下使用ELK(Elasticsearch + Logstash + Kibana)搭建日志集中分析平台

    Centos7下使用ELK(Elasticsearch + Logstash + Kibana)搭建日志集中分析平台 日志监控和分析在保障业务稳定运行时,起到了很重要的作用,不过一般情况下日志都分散在 ...

  10. 当当elastic-job docker快速部署_[小Z课堂]-docker 快速部署 elasticsearch 和 kibana,一键部署...

    各位小伙伴,小Z课堂来袭,每天只需看三分钟,你就能用docker 快速部署各种环境.今天就用docker 来部署 elasticsearch 和 kibana.docker的入门请上度娘学习,这里直接 ...

最新文章

  1. 解决Word出错--一打开就反复重启的问题
  2. POJ 2955 区间DP必看的括号匹配问题,经典例题
  3. python3 for sum_Python for循环和“sum13”方法
  4. 地图数据下载方法与商业地图下载器介绍
  5. rpg服务器修改数据,ATOM RPG 修改数据方法 怎么修改游戏数据-游侠网
  6. Thinkphp 模板/包含文件
  7. 手机号邮箱怎么注册?邮箱登陆163登录入口
  8. cs服务器(cs索沛服务器)
  9. 快速入门SSMS的使用
  10. 台式计算机 主控芯片型号,win10系统查看U盘的主控芯片型号的图文方法
  11. jQuery实现AJAX定时刷新局部页面实例
  12. android菜单键 r9,Android OPPO R9 后台 无法启动 Activity 问题
  13. 关于网络下载的记忆碎片
  14. (solved)[/usr/bin/python2: No module named pip]
  15. MapReduce 原理与实践
  16. 重生之沙费德提克 LOL重生之沙费德提克购买地址 重生之沙稻草人皮肤特效视频
  17. STM32F030 12位高精度ADC用法
  18. 2 年前端面试字节跳动、YY、虎牙、BIGO心路历程总结
  19. 怎么开启华为手机隐藏功能
  20. 给你代码加个“颜值”吧!

热门文章

  1. 如何将livp文件转换为jpeg图片格式
  2. Python3 post请求上传文件
  3. Fragment already added 问题
  4. una到底啥意思_una到底啥意思_Una_英文名Una是什么意思
  5. 云智慧全智能计算机,东方所推出INV3062T型云智慧采集系统
  6. Python语言特色集锦
  7. SAI创始人谈美股IPO:做清洁算力领域“特斯拉” 减少碳排放
  8. 国内期市前7个月成交超去年全年
  9. php 图片生成vr_vr全景技术难吗?vr全景技术原理和应用讲解
  10. Linux 管道通信