这篇文章是与 Capitec 的 Preshen Goobiah 和 Johan Olivier 共同撰写的。
Apache Spark 是一种广泛使用的开源分布式处理系统,以处理大规模数据工作负载而闻名。 它在 Spark 开发人员中经常得到应用 亚马逊电子病历, 亚马逊SageMaker, AWS胶水 和自定义 Spark 应用程序。
亚马逊Redshift 提供与 Apache Spark 的无缝集成,让您可以轻松访问 Amazon Redshift 预置集群上的 Redshift 数据 Amazon Redshift 无服务器。 这种集成扩展了 AWS 分析和机器学习 (ML) 解决方案的可能性,使数据仓库可供更广泛的应用程序访问。
随着 适用于 Apache Spark 的 Amazon Redshift 集成,您可以使用 Java、Scala、Python、SQL 和 R 等流行语言快速开始并轻松开发 Spark 应用程序。您的应用程序可以无缝读取和写入 Amazon Redshift 数据仓库,同时保持最佳性能和事务一致性。 此外,您还可以通过下推优化来提高性能,从而进一步提高运营效率。
Capitec南非最大的零售银行,拥有超过 21 万零售银行客户,旨在提供简单、实惠且方便的金融服务,以帮助南非人更好地办理银行业务,让他们生活得更好。 在这篇文章中,我们讨论 Capitec 共享服务功能平台团队对开源 Amazon Redshift 连接器的成功集成。 通过利用 Apache Spark 的 Amazon Redshift 集成,开发人员的工作效率提高了 10 倍,功能生成管道得到简化,数据重复减少到零。
商业机会
Capitec 零售信贷部门有 19 个预测模型,可利用使用 AWS Glue 构建的 93 项功能。 Amazon Redshift 中存储的事实和维度丰富了特征记录。 选择 Apache PySpark 来创建功能是因为它提供了一种快速、分散且可扩展的机制来处理来自不同来源的数据。
这些生产功能对于实现业务内实时定期贷款申请、信用卡申请、批量月度信用行为监控、批量每日工资识别等发挥着至关重要的作用。
数据来源问题
为了确保 PySpark 数据管道的可靠性,必须从存储在企业数据仓库 (EDW) 中的维度表和事实表获得一致的记录级数据。 然后,这些表在运行时与企业数据湖 (EDL) 中的表连接。
在功能开发过程中,数据工程师需要与 EDW 的无缝接口。 该接口允许他们访问 EDW 中的必要数据并将其集成到数据管道中,从而实现功能的高效开发和测试。
之前的解决过程
在之前的解决方案中,产品团队数据工程师每次运行都要花费 30 分钟手动将 Redshift 数据公开给 Spark。 这些步骤包括以下内容:
- 在 Python 中构建谓词查询。
- 提交 卸下 通过查询 Amazon Redshift 数据 API.
- 通过适用于 Pandas 的 AWS 开发工具包使用采样对 AWS Glue 数据目录中的数据进行编目。
这种方法给大型数据集带来了问题,需要平台团队进行定期维护,并且自动化起来很复杂。
当前解决方案概述
Capitec 能够通过功能生成管道中 Apache Spark 的 Amazon Redshift 集成解决这些问题。 该架构如下图定义。
工作流程包括以下步骤:
- 内部库通过以下方式安装到 AWS Glue PySpark 作业中 AWS 代码工件.
- AWS Glue 作业从以下位置检索 Redshift 集群凭证 AWS机密管理器 并通过共享内部库设置 Amazon Redshift 连接(注入集群凭证、卸载位置、文件格式)。 Apache Spark 的 Amazon Redshift 集成还支持使用 AWS身份和访问管理 (IAM) 至 检索凭证并连接到 Amazon Redshift.
- Spark 查询会转换为 Amazon Redshift 优化查询并提交给 EDW。 这是通过 Apache Spark 的 Amazon Redshift 集成来实现的。
- EDW 数据集被卸载到一个临时前缀中 亚马逊简单存储服务 (Amazon S3)存储桶。
- S3 存储桶中的 EDW 数据集通过 Apache Spark 的 Amazon Redshift 集成加载到 Spark 执行器中。
- EDL 数据集通过 AWS Glue 数据目录加载到 Spark 执行器中。
这些组件协同工作,确保数据工程师和生产数据管道拥有必要的工具来实现 Apache Spark 的 Amazon Redshift 集成、运行查询以及促进将数据从 Amazon Redshift 卸载到 EDL。
在 AWS Glue 4.0 中使用 Apache Spark 的 Amazon Redshift 集成
在本部分中,我们通过使用 PySpark 中 Redshift 数据仓库中的客户信息丰富驻留在 S3 数据湖中的贷款申请表,演示了 Apache Spark 的 Amazon Redshift 集成的实用性。
dimclient
Amazon Redshift 中的表包含以下列:
- 客户端密钥 – INT8
- 客户端备用键 – VARCHAR50
- 参与方标识符号 – VARCHAR20
- 客户创建日期 - 日期
- 取消 – INT2
- 行是当前的 – INT2
loanapplication
AWS Glue 数据目录中的表包含以下列:
- 记录ID ——BIGINT
- 日志日期 – 时间戳
- 参与方标识符号 - 细绳
Redshift 表通过 Apache Spark 的 Amazon Redshift 集成读取并缓存。 请看下面的代码:
贷款申请记录从 S3 数据湖读取,并通过以下信息进行丰富: dimclient
Amazon Redshift 信息表:
因此,贷款申请记录(来自 S3 数据湖)得到了丰富 ClientCreateDate
列(来自 Amazon Redshift)。
Apache Spark 的 Amazon Redshift 集成如何解决数据源问题
Apache Spark 的 Amazon Redshift 集成通过以下机制有效解决了数据源问题:
- 及时阅读 – Apache Spark 连接器的 Amazon Redshift 集成以即时方式读取 Redshift 表,确保数据和架构的一致性。 这对于 2 型缓变尺寸 (SCD) 和时间跨度累积快照事实。 通过将这些 Redshift 表与生产 PySpark 管道中 EDL 中的源系统 AWS Glue 数据目录表相结合,该连接器可以无缝集成来自多个源的数据,同时保持数据完整性。
- 优化的 Redshift 查询 – Apache Spark 的 Amazon Redshift 集成在将 Spark 查询计划转换为优化的 Redshift 查询方面发挥着至关重要的作用。 此转换过程遵循数据局部性原则,简化了产品团队的开发体验。 优化的查询使用 Amazon Redshift 的功能和性能优化,确保 PySpark 管道从 Amazon Redshift 高效检索和处理数据。 这有助于简化开发流程,同时提高数据源操作的整体性能。
获得最佳性能
Apache Spark 的 Amazon Redshift 集成会自动应用谓词和查询下推来优化性能。 您可以通过使用用于此集成卸载的默认 Parquet 格式来提高性能。
有关其他详细信息和代码示例,请参阅 新 – Amazon Redshift 与 Apache Spark 的集成.
解决方案优势
采用集成为团队带来了几个显着的好处:
- 提高开发人员的生产力 – 集成提供的 PySpark 界面将开发人员的工作效率提高了 10 倍,使与 Amazon Redshift 的交互更加顺畅。
- 消除数据重复 – 消除了数据湖中的重复和 AWS Glue 编目 Redshift 表,从而形成更加简化的数据环境。
- 减少 EDW 负载 – 集成促进了选择性数据卸载,通过仅提取必要的数据来最大限度地减少 EDW 的负载。
通过使用 Apache Spark 的 Amazon Redshift 集成,Capitec 为改进数据处理、提高生产力和更高效的特征工程生态系统铺平了道路。
结论
在这篇文章中,我们讨论了 Capitec 团队如何成功为 Apache Spark 实施 Apache Spark Amazon Redshift 集成,以简化其特征计算工作流程。 他们强调了利用分散式和模块化 PySpark 数据管道创建预测模型功能的重要性。
目前,Apache Spark 的 Amazon Redshift 集成已被 7 个生产数据管道和 20 个开发管道使用,展示了其在 Capitec 环境中的有效性。
展望未来,Capitec 的共享服务功能平台团队计划在不同业务领域扩大 Apache Spark 的 Amazon Redshift 集成的采用,旨在进一步增强数据处理能力并促进高效的功能工程实践。
有关使用 Apache Spark 的 Amazon Redshift 集成的更多信息,请参阅以下资源:
作者简介
普雷申·古比亚 是 Capitec 功能平台的首席机器学习工程师。 他专注于设计和构建供企业使用的要素存储组件。 业余时间,他喜欢读书和旅行。
约翰·奥利维尔 是 Capitec 模型平台的高级机器学习工程师。 他是一位企业家和解决问题的爱好者。 他在业余时间喜欢音乐和社交。
苏迪普塔·巴吉 是 Amazon Web Services 的高级专家解决方案架构师。 他在数据和分析方面拥有超过 12 年的经验,帮助客户设计和构建可扩展的高性能分析解决方案。 工作之余,他喜欢跑步、旅行和打板球。 与他联系 LinkedIn.
赛义德·胡迈尔 是 Amazon Web Services (AWS) 的高级分析专家解决方案架构师。 他在企业架构方面拥有超过 17 年的经验,专注于数据和 AI/ML,帮助全球 AWS 客户满足其业务和技术需求。 您可以通过以下方式与他联系 LinkedIn.
武伊萨·马斯瓦纳 是 AWS 的高级解决方案架构师,常驻开普敦。 Vuyisa 非常注重帮助客户构建技术解决方案来解决业务问题。 自 2019 年以来,他一直为 Capitec 的 AWS 之旅提供支持。
- :具有
- :是
- $UP
- 06
- 1
- 10
- 100
- 12
- 16
- 17
- 19
- 20
- 2019
- 30
- 7
- a
- Able
- ACCESS
- 无障碍
- 完成
- 横过
- 额外
- 附加信息
- 另外
- 地址
- 地址
- 坚持
- 采用
- 实惠
- AI / ML
- 致力
- 目标
- 允许
- 允许
- 还
- Amazon
- 亚马逊网络服务
- 亚马逊网络服务(AWS)
- 其中
- an
- 分析
- 和
- 阿帕奇
- Apache Spark
- 应用领域
- 应用领域
- 适用
- 的途径
- 架构
- 保健
- 地区
- AS
- At
- 自动化
- 自动
- AWS
- AWS胶水
- 银行
- 银行业
- 基于
- 因为
- 行为
- 得益
- 好处
- 最佳
- 更好
- 之间
- 最大
- 提振
- 都
- 更广泛
- 建立
- 建筑物
- 建
- 商业
- by
- CAN
- 能力
- 海角
- 卡
- 检索目录
- 改变
- 客户
- 客户
- 簇
- CO
- 码
- 柱
- 列
- 结合
- 复杂
- 组件
- 计算
- 分享链接
- 地都
- 一贯
- 包含
- 上下文
- 转化
- 转换
- 创建信息图
- 创造
- 资历
- 信用
- 信用卡
- 板球
- 关键
- 习俗
- 合作伙伴
- 每天
- data
- 数据湖
- 数据处理
- 数据仓库
- 数据集
- 分散
- 默认
- 定义
- 演示
- 设计
- 设计
- 详情
- 开发
- 开发商
- 开发
- 研发支持
- 不同
- 尺寸
- 尺寸
- 讨论
- 讨论
- 分布
- 不同
- 容易
- 生态系统
- 只
- 效用
- 效率
- 高效
- 费力
- 淘汰
- 强调
- 使
- 使
- 工程师
- 工程师
- 工程师
- 提高
- 加强
- 丰富
- 充实
- 确保
- 保证
- 企业
- 爱好者
- 企业家
- 环境
- 必要
- 醚(ETH)
- 现有
- 扩大
- 展开
- 体验
- 促进
- 促进
- 事实
- 因素
- 正确
- 高效率
- 专栏
- 特征
- 文件
- 金融
- 金融服务
- 发现
- 专注焦点
- 重点
- 聚焦
- 以下
- 针对
- 格式
- 向前
- 频繁
- 止
- 功能
- 进一步
- Gain增益
- 代
- 得到
- GitHub上
- 在全球范围内
- 处理
- 有
- he
- 帮助
- 帮助
- 帮助
- 他
- 他的
- 创新中心
- HTML
- HTTP
- HTTPS
- IAM
- 鉴定
- 身分
- 实施
- 实施
- 进口
- 重要性
- 改善
- 改善
- in
- 包括
- 包括
- 增加
- 信息
- 整合
- 积分
- 诚信
- 相互作用
- 接口
- 内部
- 成
- 问题
- IT
- 它的
- 爪哇岛
- 工作
- 加入
- 加盟
- 旅程
- 湖泊
- 语言
- 大
- 大规模
- 铅
- 学习
- 左
- 库
- 自学资料库
- 喜欢
- 生活
- 加载
- 贷款
- 地点
- 爱
- 机
- 机器学习
- 维持
- 保养
- 制作
- 方式
- 手动
- 机制
- 机制
- 百万
- 最小化
- 分钟
- ML
- 模型
- 模型
- 模块化
- 监控
- 每月一次
- 更多
- 更高效
- 多
- 音乐
- 必要
- of
- 优惠精选
- 橄
- on
- 仅由
- 打开
- 开放源码
- 运营
- 最佳
- 优化
- 优化
- 秩序
- 学校以外
- 超过
- 最划算
- 大熊猫
- 尤其
- 密码
- 为
- 性能
- 计划
- 计划
- 平台
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 播放
- 播放
- 扮演
- 热门
- 构成
- 可能性
- 帖子
- 做法
- 预测
- 以前
- 原理
- 市场问题
- 问题解决
- 问题
- 过程
- 处理
- 产品
- 生产
- 生产率
- 促进
- 提供
- 提供
- 蟒蛇
- 查询
- 很快
- R
- 范围
- 阅读
- 阅读
- 实时的
- 记录
- 记录
- 经常性
- 减少
- 参考
- 可靠性
- 闻名
- 要求
- 必须
- 岗位要求
- 解决
- 资源
- 导致
- 导致
- 零售
- 零售银行
- 角色
- 运行
- 运行
- 薪水
- SC
- 斯卡拉
- 可扩展性
- 范围
- SDK
- 无缝的
- 无缝
- 秘密
- 部分
- 看到
- 选
- 选择
- 可选择的
- 前辈
- 特色服务
- 套数
- 几个
- 共用的,
- 陈列宣传
- 显著
- 简易
- 简化
- 简化
- 自
- 慢慢地
- 平滑
- 快照
- So
- 社交化
- 方案,
- 解决方案
- 解决
- 解决
- 来源
- 来源
- 采购
- 南部
- 火花
- 专家
- 花费
- SQL
- 开始
- 步骤
- 存储
- 存储
- 精简
- 精简
- 串
- 强烈
- 提交
- 成功
- 顺利
- 支持
- 支持
- 系统
- 表
- 团队
- 文案
- 临时
- 测试
- 这
- 其
- 他们
- 然后
- 博曼
- 他们
- Free Introduction
- 通过
- 次
- 至
- 一起
- 工具
- 镇
- 交易
- 旅游
- 网址
- 使用
- 用过的
- 运用
- 效用
- 利用
- 利用
- 有价值
- 通过
- 仓库保管
- 是
- 方法..
- we
- 卷筒纸
- Web服务
- 为
- 而
- 中
- 工作
- 一起工作
- 工作流程
- 工作流程
- 加工
- 写
- 年
- 产生
- 您
- 您一站式解决方案
- 和风网
- 零