翻译--什么是数据虚拟化及其如何直接从源系统中解锁实时见解

2023-10-19 14:39

本文主要是介绍翻译--什么是数据虚拟化及其如何直接从源系统中解锁实时见解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在当今快速发展的业务环境中,有许多报告要求,它们不能等待批处理过程从操作系统中加载数据。业务用户需要其本地ERP,CRM或任何云系统中当前的数据。例如,在一个财政季度末,销售和财务负责人希望实时了解订单预订,以便他们有一个好主意是否打算“按季度”实现收入。他们无法等待4–8个小时的延迟才能完成ETL作业。

数据虚拟化(DV)是一种通过“虚拟”连接到各种源系统并“虚拟”组合或连接它们以为BI系统或企业应用程序提供统一数据层以供查询的方法来构建“逻辑”仓库的方法。

数据虚拟化的高级架构

提供统一层的数据虚拟化方法的另一种替代方法是传统的ETL方法,该方法以周期性的时间间隔从各种源系统移动数据并将其加载到物理数据仓库中。然后,通过将仓库中的数据加载到目标星型模式或雪花数据模型中来合并它们。ETL加载通常是批处理过程,每天加载一次或一天加载几次,具体取决于加载时间和数据延迟要求。

DV如何工作?

DV的核心是一个SQL生成工具,它具有易于使用的UI来跨各种数据源构建语义层。无需通过从各种源系统中提取,转换和加载(ETL)将数据加载到物理仓库中,而是使用DV,数据将主要保留在源系统中,并且DV工具将加载表(或其他对象,如视图)的元数据)从DV系统导入到DV工具中。我们可以将这些虚拟表称为“物理视图”。加载表的元数据后,DV工具将允许开发人员对这些物理视图执行各种操作,包括联接和公式列,以使它们具有所需的业务逻辑。我们可以将它们命名为“逻辑视图”。一旦添加了联接和公式列,开发人员便可以使用这些各种逻辑视图来构建“ BI数据集”,以创建数据集,这些数据集是用于特定业务目的的扁平化数据视图。这些数据集可以始终包含固定的过滤器。

然后,将这些扁平化的数据集导入到MicroStrategy,Power BI或Tableau等BI工具中。在这些BI工具中,用户可以添加更多的业务公式列,过滤器,甚至可以连接DV工具中的两个“ BI数据集”。DV工具将从BI工具获取输入调用,然后转换适合特定后端数据源的SQL,该SQL是Oracle,SQL Server,Teradata之类的数据库,还是使用其Salesforce之类的API的云系统。

数据虚拟化如何工作

最好的DV工具在将查询发送到后端数据源之前执行SQL调整。DV工具不仅可以对传入的请求进行内部检查,还可以对特定的后端数据源进行优化查询,然后将SQL或API调用发送至该数据源,而不仅仅是将基本SQL发送到后端。

此外,领先的DV工具可以在本地数据库或商业数据库(例如Oracle或Snowflake)中,如果源速度较慢,则可以缓存任何物理视图,逻辑视图或BI数据集以获得更好的性能。

DV的优点

数据虚拟化有很多好处-

1.复杂源系统模式的简化视图

如果语义层是在DV工具中构建的,并且“ BI数据集”作为平面表/视图公开以导入到Tableau或Power BI等BI工具中,则源模式(如Oracle EBS或SAP)的复杂性将会降低隐藏给BI开发人员。BI开发人员通常对源系统表不是很熟悉,他们努力构建语义层,而是依赖源系统中的数据库视图。相反,在DV工具中构建语义层不仅简化了复杂的架构,而且还避免了在源数据库中维护复杂且难以更改的物理视图。

2.发展速度

由于DV仅导入表的元数据并创建镜像源对象的虚拟表,因此可以避免实现实时报告的复杂ETL。在ETL中添加新字段或表可能要花费数周到几个月的时间,因为必须设计和构建星形模式,但是在DV中,数据的形状可以保留为与源相同,因此添加新表或字段将是更容易,更快捷。

3.实时报告需求

由于DV直接通过ODBC / JDBC指向数据库或通过API指向云系统直接指向源系统,因此数据的延迟现在为零或最小。用户可用的数据是实时的,在用例中,当用户更改数据时立即需要数据,DV确实是一个不错的选择。

4.可以从BI工具隐藏源系统更改

DV的一大好处是,当对源系统进行升级时,或者即使公司将源系统替换为另一个源系统,或计划将数据库从例如Oracle迁移到Snowflake,虚拟化语义层也将有助于将这些复杂的更改隐藏在数据库中。来自各种BI工具的环境。为了适应由于升级或数据库更改而在源系统中发生的更改,在DV工具中,如果架构相同,则需要将数据源连接重新指向新数据库,如果需要,则需要在相关物理视图中进行一些更改存在诸如列添加等的架构更改。通过这种方式,无需更改基于各种BI工具构建的报表和可视化文件,也不会影响用户。

5.性能优化和缓存

大多数领先的DV工具都提供了从源数据库缓存某些表或缓存数据集的功能。缓存将大大提高BI工具中报告的性能。最好的DV工具会调整它们从BI工具收到的查询,然后将其下推到源数据库。他们还找到了从不同数据源提取和移动最少数据量的方法,然后再将它们加入DV工具并发送给BI工具。

数据虚拟化工具

关于什么是数据虚拟化,市场上存在很多困惑。对于此处所述的数据虚拟化,这些是公司可以评估其需求的工具–

商业产品

1. Denodo

2. Tibco数据虚拟化

3.数据虚拟化

4. AtScale

5. Azure分析服务

开源替代品

1. Dremio

2. Teiid

我们亲自选择了Denodo,我们非常喜欢它与本地数据库,云数据源,合并来自多个源的数据以及将数据的简化视图呈现给多个BI工具一起使用。我将在Denodo上写一篇更详细的文章,并在以后的文章中介绍它是如何工作的。

这篇关于翻译--什么是数据虚拟化及其如何直接从源系统中解锁实时见解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/240453

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境