西北互旅——将BI空间转化为云端

2021年5月26日下午03:15(太平洋时间)

下载幻灯片

可用的数据量正在以秒为单位增长(到2025年估计将达到175泽字节),并且其信息越来越细。随着这种变化,每个组织都在朝着建立数据驱动的文化迈进。我们在西北互惠银行也有类似的故事,即通过数据驱动决策来提高效率和效果。遗留系统分析揭示了瓶颈、过剩、重复等。基于不断增长的数据分析需求,我们的BI团队决定转向更现代、可扩展、成本效益更高的数据平台。bob体育客户端下载作为一家金融公司,数据安全与数据的获取同样重要。除了快速摄取和计算,我们还需要一个解决方案,可以支持列级加密,基于角色的访问不同的团队从我们的数据。

在这次演讲中,我们将描述我们将100个ELT工作从当前的MSBI堆栈转移到Databricks并构建一个数据湖(使用Lakehouse)的过程。我们如何将每日数据加载时间从7小时减少到2小时,并能够摄取更多数据。分享我们的经验、挑战、学习、架构和在进行这项巨大迁移工作时使用的设计模式。我们的工程师构建了不同的工具/框架,以帮助简化非apache Spark工程师在迁移过程中必须经历的学习曲线。在这节课结束时,你会更清楚地了解如果你正在考虑迁移到Apache Spark/Databricks,这对你和你的组织意味着什么。

在本节中请注意:
Madhu Kotian,西北互惠银行高级工程总监
Keyuri Shah,西北互惠银行首席软件工程师

成绩单

Madhu Kotian:“嘿!日安,欢迎大家。我叫Madhu Kotian。我和我的团队负责管理CRM、报告和相关应用程序。我还负责管理和维护我们的投资产品系统数据组织。我在这家公司工作了15年,在加入西北互惠银行之前,我在不同的公司从事数据架构和数据工程方面的工作。陪同我的还有我的同事Keyuri Shah,西北互惠银行的首席数据工程师。Keyuri,简单介绍一下。

Keyuri Shah:大家好。希望大家在星火峰会上玩得开心。我是科乌里·沙阿,西北互惠银行的工程师。我在西北互惠银行工作了10年,参与了多个创新项目。我最近的一次是将我们的现场报告BI空间转移到大平台上,这就是我们今天要谈论的内容。bob体育客户端下载

Madhu Kotian:我们很高兴能和你谈谈西北互惠银行的商业智能和报告空间转型之旅。在这次演讲中,我们将描述我们将数百个ETL作业从当前的MSBI堆栈转移到Databricks,并使用Delta(我们减少数据加载窗口的方法)构建一个数据中心的过程,我们还将分享我们的经验、我们的挑战、我们的学习架构,并描述用于进行这一巨大迁移工作的模式。我们将描述我们用于摄取、构建和调度数据的不同工具和框架集,这也在某种程度上帮助我们的工程师完成他们的入职过程。如果您正在考虑迁移到AWS Spark和Databricks,您将带着一些关于这对您和您的组织意味着什么的要点离开会议。在我们开始之前,先简单介绍一下我们是谁,西北互惠银行是谁。
西北互惠银行是一家拥有160年历史、《财富》杂志排名第102位的公司,为460多万人提供金融保障。我们通过全面的方法实现了这一目标,将值得信赖的顾问、个性化的金融计划(包括保险和投资产品)结合在一起,再次以技术为动力,为客户提供无缝的数字体验。现在,技术加速了我们的业务和公司战略,为我们的客户提供这种数字体验。这也有助于我们在全国各地的10,000多名金融代表更好地为客户服务。我们已经经历了几年的数字化之旅或转型,而且步伐比以往任何时候都要快,以满足当今消费者的需求。我们总部位于密尔沃基;我们的总部在密尔沃基,有4600多名员工。这就是西北互惠银行的四大支柱。我很快地讲一下。
说到互惠承诺,西北互惠是一家互惠公司,这意味着我们不向股东或华尔街报告,只向我们的保单持有人和受益人报告。这使我们能够为客户制定长期利益计划,并以不同的方式思考我们管理财务和投资的方式。财务实力对于我们提供给保单持有人的价值至关重要。不同的评级机构也肯定了这一点。我们是美国仅有的两家财务实力评级最高的公司;微软是另一个。所以,当涉及到独家分销时,它实际上与我们的财务顾问有关。这是关于提供人与人之间的互动,这更多的是建立信任,同时为我们的保单持有人提供金融建议。如果我们不提供一流的服务和长期的产品价值,这一切都是不可能的。简单介绍一下西北互惠银行是做什么的。
因此,我要做的是快速浏览一下议程,然后从报告和BI平台的角度介绍我们的团队所做的工作。bob体育客户端下载Keyuri将简要介绍迁移前后的策略。她会讲一些框架方法。我将回来谈谈迁移方法,我们做了什么,然后是关键的收获,吸取的教训。如果您计划将各自的空间转换为AWS和Databricks,那么您可以将这些内容带回各自的组织。
我们的团队。简要介绍一下我们的团队。这是一个由30多名工程师组成的团队,他们负责构建、管理和报告从不同异构来源收集数据的平台,即我们的仪表板系统。bob体育客户端下载我们收集数据,整理数据,做大量的聚合工作。我们还构建了一个维度模型,以便我们可以渲染它来报告我们的仪表板需求。我们的目标是提供扫描和按需报告是两种不同的见解,对我们的最终用户有不同的见解。我们还与不同的家庭办公业务合作伙伴合作,比如我们的内部用户,并为他们提供执行这种特殊分析的环境。bob体育外网下载但是,这是我们团队所做的非常高级的工作,所以让我们在从Keyuri迁移之前听听我们的世界。

Keyuri Shah:那么,在移民到这里之前我们的角色是什么?就像Madhu说的,我们是一个报道平台。bob体育客户端下载我们从各种不同的来源获取数据,然后,我们从30到40个不同的数据库获取数据,这些数据库都不同,从UDP到MySQL到SQL Server,还有很多平面文件,XML文件,CSB文件。在左边,在这里的大图片中,我们可以看到我们从预置系统和云系统中获得的所有不同的数据源。在迁移之前,我们习惯使用SSIS集成服务,它只是不能管理我们的所有数据。一旦数据被管理好,我们就把它们存储到我们的下一层,也就是数据存储层。我们曾经使用Azure中的分析服务和后续数据库来存储我们所有的数据。在那个时间点,我们的数据大小几乎是2到3 tb。从那里,我们使用Power BI和SSRS来做我们的可视化;已经是典型的MSBI,我们使用的微软MSBI堆栈。
现在是一些快速统计数据。他们以前会是什么样子?我们在SSRS中有将近300个etl,我们曾经在夜间运行。它过去每晚播放大约7个小时。我们获得的任何新功能都需要大约5到6周的时间才能推向市场,这意味着我们平均需要5到6周的时间才能满足需求。我们必须获得新的表格,整理它们,将其放入Power BI/SSRS中,然后我们将其交付给我们的生产和最终用户,所以这个时间框架大约是五到六周,这对我们的产品和业务来说是很长的一段时间。那么,在基础设施或数据空间出现之前,我们的痛点是什么?那么,组织中的每个人,甚至在您的组织中,在您的团队级别,您都将看到数据量增加的趋势。
这增加了可用数据的粒度,增加了更多可用数据,所以我们必须开始吸收所有这些新数据,因为我们的业务需要不同的报告,不同的分析,从这个巨大的数据中。随着数据量的增加,我们的延迟也会增加。刚开始的时候,我们的坏循环是2小时,但我们继续发展,发展,发展,现在我们的坏循环是7到8小时。它会继续增长;我们不会就此止步。这是严格意义上的近延时;我们的延迟随着新的数据负载而增加。
与此同时,我们的数据不一致和数据蔓延也增加了。我们不得不在不同的地方复制数据。像大多数行业标准一样,我们有报告数据库,有数据仓库,有用于分析的数据,有用于api的数据库。正因为如此,数据冗余增加了。这增加了各种各样的问题,比如当数据与之不匹配时。从我们的消费角度来看,另一个最大的痛点是我们的分析师。我们的业务用户,我们的分析师没有一个集成的数据来工作,所以作为他们分析的一部分,他们必须做的是他们必须把所有这些不同的数据库的数据放在一个地方,然后开始做分析。这不是他们工作的理想场所。当然,在所有这些增加的情况下,成本也会增加。新的,更多的数据库增加成本,更多的计算费用和成本。
我们的另一个主要原因是,因为我们是一个典型的数据仓库,增加了存储空间,我们也必须增加我们的计算能力。因此,这里的成本一直呈指数增长,然后是安全性。作为一家金融公司,安全对我们来说是最重要的。管理最高级别的安全系统以及我们遇到的所有其他问题变得越来越具有挑战性。考虑到这一点,我们决定是时候转向一个更现代、更可扩展、更安全的平台了。bob体育客户端下载当我们决定转移到一个新平台时,我们有什么不同的考虑?bob体育客户端下载好吧,我们的面包和黄油:我们如何做ELP?我们如何安排我们所有的工作?的性能。这是我们一直在寻找的重要东西。 Seven hours, and it kept growing. That was not at all ideal.
第二件重要的事情是,我们使用的任何新工具都应该易于维护、易于使用和易于学习。我们不希望任何开发人员经过一两年的密集培训,然后才开始为我们的敏捷世界做出贡献。我们必须迅速转向。我们必须快速学习,而且我们仍然必须保持我们的业务成果。另一个主要的关注点是当我们计算刻度时。当我们扩展我们的计算和存储时,我们希望相应地管理我们的成本。我们不断获得更多的数据并不意味着我们的成本必须呈指数级增长。我们有很多复杂的依赖关系。我们从30到40个不同的来源获取数据,并在表级和作业级上管理复杂性。在这个时间点上,它变成了一个巨大的蜘蛛网,但这是我们无法避免的。 What we wanted to do is make it simplistic for our developers to put those complexities in place. For anybody who is debugging, make it easier for them to understand all of these complicated dependencies.
移到中间:我们的数据湖,我们的存储。这是我们谈论新平台时的另一个主要支柱。bob体育客户端下载我们的数据湖必须被治理,所以我们放入一个新表的每个元数据,一个新的变化列,所有这些都必须经过良好的治理过程。我们有很多下游消费者使用我们的数据;我们不希望它们在我们制造或改进我们的系统时下降。这是我们考虑新平台时的一个重要因素。bob体育客户端下载
支持资产操作。典型的插入、创建、更新、删除,所有这些都应该可以在表级实现。能够查看过去的数据。这意味着每天晚上我们都要做夜间工作,但我们也想回到过去三天,四天,看看我们的数据在那个时间点的状态是什么。当我们试图做有时限的报告和类似的事情时,这很重要。然后是数据验证和数据质量。每天晚上,当我们第二天早上加载数据时,当我们的现场用户来登录他们的报告时,我们都希望确保他们接收到的数据是最高质量的。
接下来是我们的第三个支柱:安全性。如你所见,它有一个单独的部分,这意味着它是最重要的。虽然我们在所有实现中都进行了静态加密和传输加密,但列级加密是保护PII和PHI信息的主要需求。我们不只是想保护它不受黑客攻击,我们还想保护它不受所有访问我们数据的人的侵害:开发人员、测试人员和管理员。只有那些被授权查看PII/PHI数据的人才能看到它。这就引出了下一点,即对数据库、表和视图的基于角色的访问。我们希望轻松地管理谁可以访问哪些数据,这意味着一个组可以访问某一组视图,而另一个组可以访问另一组视图。所有内容都应该启用Active directory并由Active directory控制。Azure活动目录是我们组织各个级别的主要分组之一,所以无论我们选择什么工具,都必须能够与活动目录集成,这一点非常重要。
在做这些考虑的同时,我想让你们快速看一看移民后我们的世界会是什么样子。显然,在左边,我们的来源没有改变。另一个决定,我们在右边所做的,我们的可视化层没有改变。报表,Power BI, SSRS报表是如何呈现的。这一切都没有改变。改变的是中间的方框。我们现在使用Databricks和Airflow来调度,而不是通过SSIS来摄取数据。我们在Databricks和Airflow的基础上构建了自定义框架,以确保我们的团队和组织易于使用和管理。对于数据存储,我们不再使用SQL Server,而是将所有数据移动到一个数据湖,并使用Delta表。然后,这个表支持所有的资产操作,时间旅行,这是我们在数据湖中寻找的特性。
我们也有MySQL实例,我们管理我们的高延迟/低延迟用例。我把数据放在和之前幻灯片相同的对比中。我们移民后的情况如何?现在我们计算的不是ETF文件,而是配置文件,我们可以稍微详细地说明这意味着什么。
现在我们的框架中有500多个配置文件。我们最大的不同在于我们的批处理周期时间。过去需要7个小时,现在只需要2个小时。请注意,我们现在摄入的数据比我们以前在我们的英语教学中做一些改变之前要多,因为总是需要更多的数据。现在我们可以用更多的数据来消化它,我们的周期时间缩短了;这是一个巨大的胜利。另一个好处是上市时机。我们过去大约需要五到六周的时间,但现在平均水平的要求实际上已经下降到一到两周,因为我们投入了所有的批准和CICB流程。由于工具和技术的性质,我们现在可以在一到两周内提出新的需求。所以,这是一个惊人的变化。
但我们是如何做到这一切的呢?就像我在上一张幻灯片中提到的:配置文件。这到底是什么意思?我们选择了各种开发框架来帮助我们的开发人员。首先是我们的英语教学框架。它位于我们的数据库里,使用Spark拥有的[听不清]。基本上,它需要一些配置文件。它们易于阅读,易于应用JS ON文件。它有不同的选项,比如您试图从DB2数据库中读取,而您试图从开发人员可以放入的CSV文件中读取,以及目标级别。您希望如何放置这些精选数据? That helps our developer not write any complicated by spark for every ETL. Every ETL now basically gets converted to a config file, which developers check in. It really makes it simple to use not only developers level, but even from support perspective and deep working perspective. We basically go in and we use those JS ON files.
这也是CI-CD方法。这对审批很有帮助。我们在框架中加入的另一个重要的东西叫做级别加密。我们如何识别PII/PHI列,然后框架负责列级的加密。昨天,有一个关于同一主题的演讲,如果你们感兴趣,请观看视频。
移到元数据框架的中间部分。基本是一样的哲学。这次它使用了可配置的YML文件,但它基本上是模式。你通过配置文件提供列名,数据库名,访问请求,所有的一切,框架会自动创建所有的数据库,创建所有的视图,应用所有的访问控制,等等。今天下午5点到5点半有个讲座。如果你们感兴趣,请加入我们。与我们的气流框架相似。我们有一个非常复杂的依赖关系管理,我们不希望我们的开发人员编写数百行代码来管理每个表级别的所有依赖关系。我们将所有这些抽象到一个配置文件中,所以现在开发人员要做的是放置一个时间表,放置表的所有依赖项,然后框架负责创建一个DAG[听不清]。
如果任何人有更多的兴趣想知道它是做什么的或者它是怎么做的,请随时在领英上与我们联系,我们可以聚在一起获得更多的信息。那么,我们是怎么做到这些的呢?下面请Madhu谈谈我们的迁移方法。

Madhu Kotian:当谈到我们的迁移方法时,首先要考虑的是团队设置。我们从一个小组开始。您可能都有不同的scrum团队来管理各自的数据分析平台和管理不同的业务优先级。bob体育客户端下载在这个案例中,我们从不同的团队(我们的scrum团队)拉来几个工程师,组成这个群组。我们为他们提供了一种自主意识,以执行这些增量实验和POC,并逐步成熟平台能力。bob体育客户端下载这里的关键是使用你现有的技能集,现有的团队,因为他们了解业务规则及其背后的逻辑。从外部找一个人,你可以解决这个问题,但有时会耽误你的进度。所以,这是一种学习。
关于代码迁移,当我们谈论逐步成熟平台功能时,我们从一个端到端流程开始,目的是使其可以用于生产。bob体育客户端下载这让我们有机会在前进的过程中增强我们的框架。它让我们很好地了解了端到端将会是什么样子,以及框架的缺点是什么。我们在前进的过程中逐渐崩溃。同样,对于迁移,我们没有考虑提升和转移,我们没有使用任何加速器来快速跟踪项目。使用加速器是有好处的。在我们的例子中,我们的模型中有很多冗余,在我们的摄入过程中,所以我们想重新审视所有这些。我们观察整个结构,然后再建造新的东西。所以,这就是我们最终没有选择加速的原因因为那基本上会让我们在时间轴上倒退一点。
说到体验,Keyuri提到了这一点。我们没有改变我们的报告和仪表板层。我们的目标是不影响最终用户的体验。我们消除了MSBI基础设施应用程序的依赖关系,并在不影响前端方面的情况下移动了调度和数据摄取以及后端基础设施。我们所做的就是改变幕后的一切。从本质上讲,我们的终端用户基本上没有注意到后端发生的所有变化。从验证和支持的角度来看,我们可以选择在逐步构建AWS环境的同时保持Azure环境的正常运行。通过这种方式,您可以持续构建AWS结构,但同时还可以验证数据并比较您所看到的AWS。这样你就知道你可以匹配它们之间的奇偶校验,看看少了什么。如果您还记得我讲过的每个增量构建的验证和验证场所,我们还发布了功能户外用户的任何性能或数据质量的反馈。
当谈到关键的收获时,你可以从我们的经验中得到一些东西。我们看的第一件事,我们的第一优先级,是看业务产品和安全需求。我们是带着这个想法开始做生意的。显然,对于他们来说,他们应该在这对他们真正意味着什么的问题上达成一致。对于我们正在努力解决的痛点,应该有一个共同的理解。我们最终与他们合作,了解他们的痛点,所以你知道,从业务的角度来看,当他们试图处理不同的数据需求时,有很多痛点。他们担心悬着的数据。他们担心数据质量。他们有不同的特别分析和需求,所以显然他们无法访问这些不同的生产系统。非常有特色。
他们最终建立了自己的频道ID,将所有数据放在自己的环境中。本质上,它变得陈旧。事实的版本并不清楚,所以业务团队一直在处理许多痛点。我们基本上抓住了这些痛点。这对我们的业务案例是一个很好的输入,因为我们围绕为什么要真正迁移到这个新平台建立了理由。bob体育客户端下载我们在前期做的另一件重要的事情是安全。这也是Keyuri提到的。安全是一等公民,作为一家金融公司,我们要接受大量的审计和安全审查。我们确保解决方案架构是明智的,从加密的角度来看,我们已经准备好了一切。我们希望确保传输中的加密、静止时加密,甚至列级加密到PII和PHI信息。 That is basically implementing the process and how to really promote access to different users to come in the system?
我的理念不是限制人们的访问权限,而是限制他们可以看到的内容。如果你不想让他们看到PII/PHI信息,你可以在它周围设置特定的控件。这更多的是关于数据的优先级,让任何想要使用它的人都可以使用它。对我们来说,关键是要确保安全控制是内置在框架中。在我们进入任何POC或构建框架之前,我们希望确保这些安全控制已经到位。
从产品的角度来看,除了业务,我们还有与我们合作的数字产品合作伙伴,我们的目标是满足这些业务优先级。bob体育外网下载他们担心团队的速度。通过划分团队的开发速度,在这一功能步骤上的前期工作对我们来说非常重要。随着经验的积累,我们很快就能让团队的其他成员加入进来,并调整速度。他们承担额外的创新,并交付一些业务优先级。这就是我们的业务产品和安全团队所做的。另一个方面也是显示和证明您的进展,因此当您通过过程逐步学习时,部署这种增量变化并从我们的利益相关者获得即时反馈。也交流。我认为沟通是非常重要的。压力再大也不为过。 Don’t use this as your secret project, right? You’re innovating. You don’t want to share with many people, but I would say share it because you will be surprised to get a fair amount of feedback from them, which is going to, in the end, benefit your product.
我们做得很对的另一件事是我们的工程师的计划,所以当我们看到为什么我们要建立一个框架,我们所有的开发人员,我们的MSBI堆栈工程师。现在,对他们来说,真正尝试Python、Spark和Databricks,并打算在一年半的时间内交付所有东西,这是压倒性的。这是一项艰巨的任务,所以实际上对他们来说是一个巨大的提升。构建框架对他们来说非常重要,因为他们可以从数据工程的角度理解需要什么,框架为他们提供了一条途径,这样他们就可以使用这种配置方法,最后还可以使用SQL知识转换到这个新平台。bob体育客户端下载我们非常细致地将培训项目激进化围绕我们希望工程师学习的内容。我们开发了一些Python初学者的培训,如何操作指南。我们创建了一些研讨会,这样他们就可以浏览整个过程,了解这些陷阱是什么,他们可以从中学习。
另外,我认为最棒的是,因为我们成立了一个单独的团队来研究它,他们基本上被送回了各自的团队。他们基本上就是刚入职时被安排在团队中的导师。
正如我前面提到的,我们保留了备用选项,也就是Azure,所以如果我们遇到AWS没有像我们预期的那样工作的情况,我们总是可以选择恢复并转移到Azure。我们不需要这样做,但这对我们来说是一个很好的验证。这里的另一个关键点是,您正在研究一项很酷的新技术,利用分布式计算的强大功能,但您的下行系统还没有为您准备好。请考虑它们,并在使用下游遗留系统时考虑使用适当数量的集群。你可以打倒他们。我们做到了,但很快就恢复了。这对我们来说是一个巨大的惊喜,也是一个学习的时刻。当我们提升下游系统时,我们基本上优化了我们需要打开的集群级别。
这就是我们的结束语。这还没完。这只是旅程的开始。我们正在努力将两个实例分开,我看不懂,让我们的业务可以使用SQL分析并在湖畔模式上进行构建。我希望我们在今天的演讲中分享的经历是有深刻见解的,希望这能对你未来的旅程有所帮助。谢谢大家的聆听,并期待你们的任何问题。我们可以回答这些问题。谢谢你!

Madhu Kotian

Madhu Kotian是西北互惠银行的高级工程总监。他负责领导不同应用程序的任务、愿景和实施,以及数据和报告功能。
阅读更多

Keyuri沙

Keyuri沙

Keyuri Shah在IT行业有13年以上的丰富经验,曾在多家公司工作。她在设计、原型设计、构建和部署可扩展的数据处理管道方面的专业知识。
阅读更多