转换博客推特卡01

数据转换解释

数据转换是从一种格式转换数据的过程, structure, 或者通过连接的方式将一组值与另一组值连接起来, filtering, appending, 或者对数据进行某种计算. 这是必要的,以保持数据的组织,并使它更兼容和更容易为人类和计算机使用. In this post, w88平台将介绍数据转换的基础知识, 不同类型, 过程和工具, 的挑战, 还有很多好处. 

虽然数据转换是一个相对简单的概念,但在实践中它可能非常微妙. 数据摄取, 但你必须带着这些数据从a点到B点,有时也到C点, D, and E. Whether ETL, ELT, 或者随便你怎么称呼, 数据转换是对数据进行处理,使其更有价值的行为, usable, and reusable, 这样你就能满足分析的需要, ML和其他依赖这些数据的业务团队. 

为什么数据转换很重要?

那么,为什么数据转换很重要呢? 如果公司吸收了他们的数据, 难道他们不能使用这些数据来创建他们需要的业务分析和仪表板吗? 为什么他们需要改变或改造它? Simply put, 这些数据很少以正确的格式和结构对正确的方有用或可用. 

First off, 当数据从API中被摄取时, blob storage, 数据仓库, 或另一个来源, 您无法控制如何格式化数据. 你可能会得到JSON数据,或者CSV格式的数据. Most often, 无论数据仓库是什么,数据都不是您所需要的格式, BI或您正在使用的可视化工具. 

除了标准化格式之外,还需要过滤坏数据并执行数据质量检查. Then, 在许多情况下, 您需要对其进行下游聚合,以便将其与来自其他系统的数据或以前摄取的数据连接起来. 将数据放到可以使用它的地方需要许多步骤, 将它应用到您的用例中, 并从中得到充分的好处.  

为什么数据转换是复杂的?

即使是构建一些最简单的数据管道, 数据转换可能很快变得复杂. 例如,想象一下,通过摄取数据来创建一个围绕用户活动的管道. 假设数据来自分布在全球的三个不同云上的不同部署的日志流, 这意味着有多个不同的地区和时区. 

它以一种不同于您通常使用的格式接收—比方说日志格式, 加上一些JSON结构的对象. 在本例中,它主要是半结构化文本数据, 当数据来自记录用户活动的后端系统时,通常会出现这种情况. 一旦您开始对数据进行分析式操作, 你需要把它从JSON压缩文件到柱状结构, 所以你可以计算效率, 对其进行分析式操作. 这涉及到获取JSON数据, 解压它, 并将其转换为列格式,这只是第一步. 

另一个常见的步骤是过滤掉您不感兴趣的数据. 这个过滤器不是简单地基于单个用户, 也包括使用数据的更大群体. 也许你要找的是真正创造的人, update, 和删除操作, 但你对其他类型的事件不太感兴趣. 过滤掉这些组的数据是另一种常见的数据转换类型,它对数据集进行打磨和细化,使其对下游工作负载更有用和更准确. 

有哪些不同类型的数据转换?

在数据管道的各个阶段, 有几种不同类型的数据转换, 从基本的重新格式化到丰富和关联数据, including:

  • 数据提取和解析: 在早期阶段, 你重新格式化数据, 提取某些字段, 解析并查找特定的值. 
  • 过滤和映射: 然后进行细化,如过滤某些数据或映射某些字段和值. 也许您想要将您的用户划分为以下三类之一:低, medium, 和高的活动, for example.  
  • 数据浓缩: 这种类型的转换包括从另一个源引入数据并将其添加到您的数据集. For instance, 您可能希望添加来自不同数据集的用户元数据,以构建特定用户的更详细视图. In this phase, 丰富数据往往可以转化为其自身的吸收形式, 突出显示了数据转换可以变得多么复杂. 
  • Cross-record相关: 这种类型的数据转换涉及分析类型的操作, 例如“计算在特定时间内有多少用户做了x, y, or z.“事件之间也存在相关性. 您可能希望通过将一个用户的活动与上一个或下一个会话关联起来,并查看时间间隔的持续时间,来确定活动是否是不同的用户会话.  在本例中发生的转换是事件的排序和聚集. 

数据转换过程

数据转换的过程各不相同, 但是这里有一些简化这个过程的最佳实践. 第一步是,在最高层次上,了解目标是什么. 一旦你知道你需要什么样的数据来实现目标, 只有这样,您才能评估需要处理的数据. 花点时间了解源数据和您需要的最终数据,以便更容易和准确地了解转换需要是什么样子.  

当您开始查询数据时, 在没有具体计划的情况下,简单地开始改变它是很常见的. 通常,将流程分解为一些简单的转换(如筛选和充实到逻辑组件和步骤)是有意义的. 这使得当用户需求和业务逻辑不可避免地发生变化时,更容易维护数据管道. 确保管道简单易懂,便于其他人进入并进行更改, if necessary. 

Also, 了解数据管道的物理限制是很重要的, 以及支持管道的基础设施需要如何扩展. 当您构建转换时, 您需要考虑转换逻辑的效率, 这样您就不会遇到意想不到的“内存不足”错误等. 当您从准备管道中的100k记录处理到生产管道中的数百万(甚至数十亿)记录时,这一点就变得非常重要. 记住可伸缩性总是有帮助的. 

数据转换的好处和挑战

转换数据存在一些挑战: 

  • 数据转换可能会变得非常昂贵, 这取决于所涉及的软件和所需的资源. 
  • 数据转换过程会消耗资源,无论是本地的还是基于云的. 
  • 缺乏专业知识可能会在转换过程中带来问题, 所以数据分析师, 处理数据转换的工程师或任何人都需要具有相关领域的专业知识, 这样他们就能准确而恰当地管理数据. 
  • 企业有时会执行不必要的转换——一旦进行了更改, 数据团队可能不得不再次更改它,以使数据可用.

转换数据有以下几个好处:

  • 一旦数据被转换, 它是有组织的,更容易——有时只有现在才可能——供人类和计算机使用.
  • 正确格式化和验证的数据可以提高数据质量,并确保应用程序正常运行,而不会遇到格式不兼容等缺陷, duplicates, 或不完整的价值观.  
  • 数据转换简化了应用程序、系统和数据类型之间的互操作性. 

数据转换的最佳实践

从概念上讲,可以将数据转换看作是一种双向搜索, 或者找到图形中两点之间的最短路径,并将原始数据映射到业务需求. 然后找出从两边到中间最有效的方法. 

从历史上看,团队从一个或另一个角度运作. Often, 业务团队向数据团队提出需求,并给出需求列表,或者数据工程团队查看他们的数据,并确定可以用这些数据做什么, 与商业目标无关. 真正的价值在于巧妙地将两者结合起来,并理解数据将被使用的上下文. 人们为什么要寻找这些数据集? 他们试图从理解中得到什么? 他们接下来自然会问什么问题?  

理解业务需求和数据: 规划转换传统上采用了瀑布式的方法,涉及许多会议, whiteboards, and diagrams. 这可能会导致大量昂贵、复杂的工作. 相反,团队需要使迭代变得廉价、简单和精简. 管道应该在几分钟内建成, 从地图上看, 创建查询原型, 将其发送到处理集群, 运行转换, 然后验证这些数据,并以渐进的方式向前推进,以尽可能快地满足新的业务用例. 数据团队需要理解为什么数据很重要, 以及如何改造和利用它. 

避免过早优化您的转换逻辑: 通常,团队已经优化了他们的转换逻辑,但是它不是很容易维护. 例如,避免使用带有复杂嵌套子查询的1,000行SQL查询. 这可能优化处理,但不是维护和工程工作. 将查询分解为小组件,理解输入和输出,以便于调试和修改. 

注意不要过度优化: 特别是在处理小数据集时,不要过度优化. 一旦你有了更大的数据集并更好地理解它们, 您可以开始做更复杂的事情,比如增量数据传播或复合嵌套转换. 只有在必要时才进行性能转换. 

使用Ascend数据自动化云进行数据转换

With the Ascend数据自动化云用于数据转换,可以轻松实现快速高效的数据转换. 您可以使用声明式定义设计管道,从而减少95%的代码,减少维护,并指定输入, outputs, 以及多种语言的数据逻辑:SQL, Python, Scala, 和Java规范. 

Ascend的全功能SDK允许您通过SDK以编程方式创建和与Ascend组件交互, 集成代码库,如Github, 并构建可重用组件. 所有这些都有助于团队避免那些对从数据中获得业务价值不重要的工作.

在Ascend中有可查询的管道, 您可以将任何数据管道的任何阶段视为可查询的表. 您可以快速地创建新的管道阶段的原型,或者对现有的管道阶段运行特别查询, 这一切都发生在几秒钟之内. 当底层数据发生更改时,会立即通知您.

用flex代码转换, Python SDK, 可查询管道, 更重要的是,Ascend数据自动化云支持所有规模的数据团队——拥有所有类型的数据q快速、轻松地创建这些数据转换,节省95%的代码.更好的是, 您可以消除传统的数据管道负担,并以10倍的速度构建.

开始改变 or 安排一次演示 today.