开发人员构建数据驱动应用程序的解释指南
什么是数据应用程序?
数据应用程序分析大规模数据,以快速展现丰富的洞察力或采取自主行动。
数据应用程序有几个名称。一些人称之为“分析应用程序”。另一些人则使用“数据密集型应用程序”或“数据驱动的应用程序”这一术语。我们更喜欢数据应用程序——简短而中肯。
数据应用程序有多种形式。有些作为客户推荐引擎出现在网站上。其他是嵌入Salesforce和其他业务应用程序的丰富数据可视化。还有一些人在幕后运作,做出明智的自主决策,并及时提出见解。
现代数据应用程序的共同点是其颠覆性潜力,使公司能够创建新的商业模式,为其运营注入前所未有的自动化水平,并成为生产力的力量倍增器。如今,在线和社交商务、安全、车队管理、航运和物流以及许多其他行业都在通过数据应用进行转型。
An example of a data application that does real-time ETA predictions and dynamic pricing.
构建数据应用程序的难点
每一个应用程序都使用数据,但并不是每个应用程序都是数据应用程序。为了满足当今数字企业的要求,数据应用程序需要快速并大规模处理数据。构建数据应用程序有几个挑战,包括:
- 提供低延迟、复杂的分析:应用程序必须立即响应。传统的应用程序查询是简单的查找,可以由键值数据库快速处理。实现复杂分析的低延迟非常困难,尤其是在涉及大型聚合和联接的情况下。数据应用程序具有提供亚秒复杂分析的挑战性要求。
- 处理高速流数据:可用数据比以往任何时候都多,而且流媒体速度也越来越高。数据应用程序需要处理来自Apache Kafka或Amazon Kinesis等事件流媒体平台的流媒体数据,以及数据库更改数据捕获(CDC)流,并快速做出决策。对于需要对新数据立即采取行动的数据应用程序来说尤其如此。你通常会在物流、电子商务、航空等行业看到这些类型的应用程序。
- 支持对半结构化数据的分析:设备和应用程序数据本质上是半结构化的,并且越来越多地以JSON和Avro等现代数据格式存储。数据应用程序面临的挑战是能够查询大量的半结构化数据。虽然许多NoSQL系统被设计为接收半结构化数据,但大多数系统无法有效地查询该数据。
- 可靠地处理高并发性:数据应用程序正在成为许多平台的核心。例如,如果新闻推送不再快速加载你朋友的状态更新,你就不会使用Facebook。数据应用程序具有与传统应用程序相同的性能要求。它们必须能够处理高并发性、可用性和可扩展性。
- 无缝的用户体验:对于用户来说,数据应用程序必须是身临其境的,而不是与应用程序的其他部分格格不入。他们应该做出回应,及时提供建议,并能够与数据互动和搜索数据,并获得即时结果。建立这样的体验需要工程师和数据团队之间的紧密合作,而不是他们传统的孤立。
这些都是难以实现的要求。使它们特别具有挑战性的是,传统的数据系统,特别是OLTP数据库和数据仓库,并不是为这组需求而设计的。
数据应用程序与…的区别。。。
事务性应用程序
经典的数据库应用程序是事务性的。它不是分析数据,而是检索和存储数据,通常存储到关系数据库,如Oracle、MySQL或SQL Server。航空公司预订系统、健康记录和会计系统长期以来一直依赖于经典的数据库应用程序来存储和提供简单的数据,而不是洞察力——查找,而不是推荐。
相比之下,现代数据应用程序是分析性的,专注于在不编写或更新数据的情况下从数据中收集见解。它们使用户能够高水平浏览数据,将其与其他数据集结合进行探索,并进行深入搜索。数据应用程序还可以通过监控传入数据、发送警报以及在满足条件时触发操作来实现操作自动化。
商业智能
与数据应用程序一样,BI也是分析性的,利用不同的数据集来产生有用的见解。相似之处到此为止。BI(高管报告和分析师仪表盘)的输出往往是静态的或缓慢的,因为数据仓库的构建没有考虑到速度或并发性。此外,在大多数BI用例中,您看到的是长期运行的历史数据聚合。相比之下,数据应用程序正在分析实时数据,以影响即时决策和行动。
许多数据应用程序提供与个人用户、设备或机器相关的目标数据。例如,客户个性化包括将特定用户的历史见解与他们最新的网站互动联系起来。路线优化包括根据特定车辆和到达目的地的最佳方式设计路线。这需要精通搜索和分析查询,才能以高效计算的方式提供快速见解。
数据应用程序的优点是什么?
数据应用程序提供了丰富、快速的洞察力、自动化和集成,数据驱动的企业正利用这些功能来超越竞争对手。主要用例包括:
- 实时个性化和推荐:数据应用程序结合历史数据和新获取的数据,主动或在与客户互动期间提供即时见解和建议。例如,维生素公司Ritual分析客户购买情况和产品视图,以创建客户的“亲和力档案”。这使得Ritual可以在客户浏览其网站时发送有针对性的横幅广告,或者在结账时发送即时优惠券和捆绑优惠,这两者都推动了Ritual的销售额增长。
Ritual’s cart checkout experience featuring personalized upsell offers.
- 预测性维护:博世电动工具将其工厂中物联网传感器的数据流传输到实时数据库,该数据库可监控制造延迟和缺失零件并自动做出响应。它还可以监控和响应客户手中出现故障的产品发出的警报。使用数据应用程序,博世可以比员工更快、更可靠地做出反应,防止员工倦怠,并让他们腾出时间执行更高价值的任务。
- 欺诈和异常检测:数据应用程序可以提醒用户检查数据,以应对特定事件或异常。例如,安全应用程序可以监视潜在的漏洞和漏洞。如果发现了漏洞,安全团队会收到警报,开始对数据进行钻探,以确定是否发生了漏洞或是否是误报。数据应用程序的类似用例是在信用卡交易中搜索潜在的欺诈行为。
- 实时物流和车队管理:汽车共享、众包食品配送、航运公司和许多其他公司都受益于数据应用程序可以提供的自主功能。Command Alkon基于云的软件跟踪了北美80%以上的混凝土交付情况。混凝土运输对时间很敏感,因为如果出现延误,批次可能会硬化并被破坏。建筑公司使用Command Alkon来跟踪即将到来的混凝土交付,获得潜在延误的警报,并深入研究运输数据以确定延误的根本原因。
Command Alkon's CONNEX platform enables collaboration across the construction materials supply chain.
- 金融投资应用程序:数据应用程序可以成为数据探索的强大工具,使企业能够将历史数据源和实时数据源相结合,以生成新的战略和降低风险的大胆决策。例如,风险投资公司红杉资本(全面披露:Rockset的投资者)建立了一套内部数据应用程序,供其投资团队使用,以探索指导其投资初创公司决策的数据。此外,销售和营销团队可以分析CRM数据以提高销售转化率。
构建数据应用的技术
虽然数据应用程序有一系列具有挑战性的需求,但好消息是,一个生态系统正在出现,可以帮助开发人员构建这些类型的应用程序。您不再拘泥于应用程序的OLTP数据库。更好的消息是,这些组件中的许多也是“现代”的,这意味着它们是云原生的,易于使用,使所有工程团队都可以使用数据应用程序。以下是开发人员为这种新型应用程序所依赖的数据系统的一些组件:
- 实时数据流:随着包括Confluent Kafka和Amazon Kinesis在内的云活动平台的兴起,实时流数据比以往任何时候都更实惠、更容易访问。随着Debezium和亚马逊数据库迁移服务等工具利用数据库日志为下游系统和应用程序提供更新,变更数据捕获已成为越来越主流的工具。
- 实时分析数据库:出现了一类新的数据库,包括Rockset,它们在技术上进行了权衡,以更好地支持实时数据和低延迟分析。其中许多系统起源于网络规模的公司,这些公司需要大规模的分布式分析系统来支持越来越多的数据应用程序。例如,Rockset是由Facebook在线基础设施背后的团队创建的,该基础设施支持Facebook Newsfeed和反垃圾邮件算法等数据应用程序。实时分析数据库通常通过实时摄取和经济高效的数据汇总来支持高速流数据。他们通过汇集搜索引擎和数据仓库技术的最佳实践,提供低延迟分析。
- 数据API:API使将实时数据移交给实现数据应用程序的工程团队变得容易。我们看到越来越多的数据库技术创建数据API、SQL API或GraphQL API,以使切换顺利。这些API有助于确保没有注入错误,允许版本控制并引入标记功能。
- 缓存工具:当您拥有需要数万个并发查询的互联网规模的产品时,我们建议将缓存层与实时分析数据库结合使用。对于大多数用例,我们建议尝试只使用实时分析数据库,因为它比内存缓存系统更便宜、更不复杂。
- 可视化工具:许多数据应用程序都涉及为无缝用户体验而构建的自定义UI。其他使用Grafana或Apache Superset等工具的数据应用程序已成为数据可观察性或操作分析的主流。此外,还有像Vega这样的可视化库,可以轻松地在复杂数据上构建可视化。
结论
环顾四周,你会发现到处都是数据应用程序,为你最喜欢的购物网站供电,加快你的食品配送,并在库存短缺发生之前预测库存短缺。Facebook实时状态更新、优步司机跟踪和亚马逊推荐引擎等数据应用程序一直是数字化转型的核心。
传统上,这些应用程序的构建具有挑战性,因为它们具有苛刻的要求。事务系统已经能够提供快速的简单查询,但不能提供复杂的分析。数据仓库可以容纳数PB的数据,但您需要等待几秒钟到几分钟才能加载分析查询。
最新内容
- 18 hours 46 minutes ago
- 21 hours ago
- 21 hours ago
- 3 days 12 hours ago
- 3 days 20 hours ago
- 3 days 20 hours ago
- 3 days 20 hours ago
- 3 days 21 hours ago
- 1 week 1 day ago
- 1 week 1 day ago