GPText 2.0: Greenplum和Solr深度集成的并行文本检索和分析引擎
Posted Pivotal研发中心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GPText 2.0: Greenplum和Solr深度集成的并行文本检索和分析引擎相关的知识,希望对你有一定的参考价值。
随着各行各业数字化转型的推进,越来越多的数据被呈现出来或收集起来,这些数据包括结构化数据和文本信息等非结构化数据。网页、社交记录、邮件、病例、保单、日志等大量文本信息的数据量正在急剧增加,如何对这些数据进行快速有效的处理分析是很多公司面临的挑战。
GPText就是针对这样的场景设计开发的,它深度集成了功能丰富的Solr搜索引擎、Greenplum的大规模并行处理和Madlib数据分析库,提供了多节点并行的高速索引和查询,以及简单和一致的使用和管理方式。
架构: 高速并行索引和查询
可以从两个方面考察GPText的架构:物理部署和逻辑结构。
在部署GPText时,GPText的Solr节点数量可以和Greenplum的Segment数量一致或者不一致。下图显示了和Greenplum的segment数量一致的部署方式,用户可以根据自己的实际情况,选择部署更多的Solr节点以提高索引和查询的性能,或者部署更少的Solr节点以便节省系统资源。
从逻辑结构上看,GPText中Solr Shard可以象Greenplum数据表一样在不同的节点分布。每个Shard都有一个leader和多个可配置的follower, 类似于Greenplum的primary segment和mirror segments。如下图所示,不同的Greenplum Segment对应于不同的Shard,正是这样的架构保证了GPText在索引数据时可以通过Greenplum的所有segment节点全并行的索引数据到不同的shard,也保证了在查询时可以借助不同的Solr节点相对均衡的处理大量数据。
下图说明了GPText索引数据的过程。在用户数据加载到Greenplum数据表后,执行GPText的创建索引UDF,GPText将会创建多个shard,这些shard将均匀的分布到各个Solr节点,这些Shard的lead replica也会尽量分布到不同的Solr节点,并在其他节点创建备份的replica。索引创建完成后,就可以通过Greenplum的多个Segement来驱动索引数据和提交索引。可以看出,通过Greenplum和Solr的配合,GPText可以让数据索引加速,让系统负载均衡。
使用:简单的SQL和UDF函数
GPText在提供高性能索引和查询的同时,也让索引和查询的使用非常简单。GPText封装了复杂的处理逻辑,给最终用户提供了一系列UDF函数来创建索引、索引数据、提交索引和文本查询,如下所示:
在文本数据加载到Greenplum后,任何了解SQL的用户都可以执行对这些数据的处理和查询分析,而不需要额外的编程。这些特性可以让更多的用户更多的场景来有效处理文本数据。
在执行上述文本和结构化表数据的联合查询时,GPText会以流式数据的方式来获取Solr索引数据,然后传送给Greenplum的不同操作符中处理,保证高性能的同时让系统资源的消耗最小可控。
类似的,对文本数据的分析包括分类、聚类、情感分析等,也可以通过Madlib提供的UDF来完成。
GPText的简单也体现在它的安装部署,下载了GPText的安装包后,通过在Greenplum master节点的一次运行就可以在整个Greenplum集群上快速部署好所有的Solr节点。
GPText 2.0
这个月刚刚发布的GPText 2.0使用了全新的设计,彻底解决了1.x的高可用和扩展性等方面的问题,提供了更完善的analyzer和查询的解析器,添加了更多对中文的支持,也提供了丰富的监控、配置和管理接口及工具,大大简化了运营和维护的复杂度,提高了产品的稳定性和易用性。
GPText 2.0集成了SolrCloud 6.1,大幅增强了产品的高可用特性,借助Zookeeper和SolrCloud的多副本设置,在有一个或者多个副本失效的情况下,有效的副本会被自动指定为leader角色,依然支持应用完成查询和索引功能。对于很多运行关键业务的系统,这样的高可用设计让业务更加可靠。
除了支持Solr自身的分词和解析的analyzer之外,GPText也添加了额外的analyzer。其中一个是支持多种语言的analyzer text_intl,可以有效索引同时包含多种语言的列,这也是GPText的缺省analyzer。还有一种analyzer text_sm, 对于社交文本添加了特别的处理,包括#符号、@符号、URL和表情等。GPText 2.0在多个方面改进了这两种analyzer, 同时自动加载了处理中文的两种analyzer,更好的服务国内客户处理中文包括简体中文数据。
在数据查询方面,GPText提供了一个统一的查询处理器UQP(Unified Query Parser),可以在一个查询语句中支持多种不同类型的查询表示,例如布尔条件、复杂的正则表达式以及距离查询等。用户可以借助这一功能实现对数据的复杂条件检索从而更好的支持业务逻辑。
GPText 2.0也提供了更加完备的管理和配置工具,包括启动停止、状态查看、配置、扩展、以及备份和恢复等,通过在master节点上的单独命令就可以对整个集群的所有节点进行管理,这些管理和配置工具可以方便用户更加轻松地运营和管理GPText集群。
应用
GPText被应用在医疗、金融、制造、政府等各种领域,同时可以高效处理文本数据和结构化数据的特性深受用户喜爱。在医疗领域,文本分析可以帮助检测和评估病人的风险模式和因素,从而可以帮助医生更好的决定测试和对病人的治疗方式。在金融领域,文本分析可以帮助企业检查公司内部的邮件、消息、日志等信息,检测可能发生的欺诈,避免对公司和客户造成损失。在汽车制造和服务行业,厂商可以从海量服务记录中挖掘有效信息,及早定位产品的缺陷和薄弱环节,通过召回、替换或者改进的方式避免重大事故,提升产品质量和用户体验。
展望
GPText 2.0由位于美国的产品经理和位于北京的中国研发团队紧密合作完成。产品经理充分听取1.x用户反馈,细化开发故事,研发团队务实创新,逐步迭代,稳定添加新功能。在开发2.0的过程中,研发团队也大量重构现有代码和测试用例,创建了持续集成和发布的流水线,如下所示,每次代码提交都会自动完成从测试到发布的全过程,为接下来新版本新功能的推出奠定了良好的基础。
在产品规划方面,GPText将优化对分区表的支持,减少索引的数量和查询时的内存开销。GPText也计划支持索引word、pdf等富文本。同时,将为用户提供更多部署选择,可以将GPText部署在Greenplum集群中或者部署到外部独立的集群上。
最后也是很重要的一点,GPText作为Pivotal Greenplum数据库的一个扩展,对所有Pivotal Greenplum的用户都是可以免费使用的。
下载GPText https://network.pivotal.io/
浏览GPText文档 http://gptext.docs.pivotal.io/200/welcome.html
英文GPText 2.0介绍Blog
https://blog.pivotal.io/big-data-pivotal/products/inside-the-new-solr-powered-sql-text-analytics-engine-for-greenplum
以上是关于GPText 2.0: Greenplum和Solr深度集成的并行文本检索和分析引擎的主要内容,如果未能解决你的问题,请参考以下文章