文章目录
概括
越来越多的公司正在从传统数据仓库迁移,转向 Data Lake 和 Lakehouse 架构,以实现数据访问的民主化并使数据更易于访问。借助这些开放式架构,组织可以通过云原生服务获得敏捷性、可扩展性和可用性,并享受灵活性且不受供应商锁定。Dremio 支持直接对 Lake/Lakehouse 内的数据进行真正的交互式 SQL 查询和 BI,并且 Dremio 很高兴成为开源 Delta Sharing 计划的启动合作伙伴,为用户提供有关通过 Delta Sharing 服务器可用的数据的交互式 SQL。
数据湖定义及由来
什么是数据湖,简单的说,数据湖更像是数据仓库的进化,比传统数据仓库涉及面更广。但这并不是说数据湖能直接代替数据仓库,两者可以互补,大量案例显示,数据仓库作为数据湖的一类“数据应用”存在,协同工作。
众所周知,传统数据仓库都是由数据库发展而来,因此,无论是传统的还是新型数据仓库(分布式、云原生数仓),主要应用于结构化数据。而数据湖是多结构数据的存储库,无论是结构化、非结构化或半结构化数据,都能以其原始格式存储,不需要进行初始转换过程,因此,更加灵活,并且存储与计算是分离的,数据存储在便宜的对象存储中,如Hadoop或Amazon S3,能更好的优化成本,而各种工具和服务(如Apache Presto、Elasticsearch和Amazon Athena)可以用来查询这些数据。
数据湖的产生,源于大数据时代企业面临的一系列挑战,例如:数据孤岛,分析各种数据集的难度,数据管理,数据安全等。而云计算、人工智能则是推动数据湖发展的重要因素,云计算提供了快速查询、海量存储的能力,而机器学习需要原始数据做分析,而用到的数据,也不止于结构化数据,用户的评论、图像这些非结构化数据,也都可以应用到机器学习中。
让数据湖更简单
虽然数据湖的概念已经存在一段时间了,但许多组织在部署它们时却步履蹒跚,因为管理这种规模的 PB 数据已被证明太具有挑战性。例如,基于 Hadoop 的数据湖通常会随着添加更多数据而迅速变成数据沼泽。
Dremio 正在通过在其平台中嵌入一系列 SQL 加速和数据管理工具来解决这个问题,以优化基于云计算环境中随时可用的对象存储系统跨数据湖的查询。现在的挑战是说服历来依赖传统数据仓库的组织重新考虑基于平台的数据湖方法,该方法有望简化访问云中 PB 级数据的过程。
为什么开放数据对数据湖和湖库很重要
各行各业的公司都在寻求通过数据访问的民主化来从他们的数据中获得更多价值。为此,公司正在从传统和孤立的企业数据仓库迁移,转向数据湖和湖库,以使整个组织的数据更易于访问,并能够从数据中快速发现和产生价值。
Data Lakes 和 Lakehouses 的一个关键属性是数据以开源文件和表格格式存储,为开放数据生态系统奠定了基础。在现代数据湖架构中,公司可以自由地为给定的任务或工作负载选择正确的技术。与数据仓库(无论是在本地还是在云中)相比,这是一种相反的设计理念,数据仓库是垂直集成和专有的,将组织限制为一个供应商提供的功能,并在供应商的专有堆栈中创建数据孤岛。
云数据湖和 Lakehouse 架构的开放性提供了三个关键优势:
- 灵活地为任何任务使用最佳引擎、服务或工具
公司可以自由地为每个用例选择正确的技术。这包括使用不同存储系统、文件格式、表格式、处理引擎(例如 SQL 引擎)或目录(例如 Delta Sharing)的能力。例如,Dremio 的许多客户将 Databricks 用于某些工作负载(例如,数据处理、机器学习),将 Dremio 用于湖上的其他工作负载(例如,BI)。在 Dremio,我们鼓励公司始终为工作选择合适的工具,因为这会产生最成功和最具成本效益的解决方案,并且公司经常同时使用 Databricks 和 Dremio 来构建成功的项目。 - 没有供应商锁定
Data Lake 和 Lakehouse 架构的一个关键属性是,可以随着需求的发展和工作负载的变化随时更改单个组件,而无需启动到新系统的迁移项目或复制大量数据。这种灵活性对于寻求从数据中获取价值的组织而言至关重要。 - 面向未来的
开放性使新技术能够轻松地融入现有的数据湖和 Lakehouse 部署中,使组织能够快速利用新的创新和发展,并与行业最佳实践保持同步。
数据湖应该具备哪些能力?
- 数据集成能力:
需要具备把各种数据源接入集成到数据湖中的能力。数据湖的存储也应该是多样的,比如HDFS、HIVE、HBASE等等。 - 数据治理能力:治理能力的核心是维护好数据的元数据(metadata)。强制要求所有进入数据湖的数据必须提供相关元数据,应该作为最低限度的治理管控。没有元数据,数据湖就面临成为数据沼泽的风险。更丰富的功能还包括:
- 自动提取元元数据,并根据元数据对数据进行分类,形成数据目录。
- 自动对数据目录进行分析,可以基于AI和机器学习的方法,发现数据之间的关系。
- 自动建立数据之间血缘关系图。
- 跟踪数据的使用情况,以便将数据作为产品,形成数据资产。
- 数据搜索和发现能力:
如果把整个互联网想象成一个巨大的数据湖。那么,之所以人们可以这么有效的利用这个湖中的数据,就是因为有了Google这样的搜索引擎。人们可以通过搜索,方便地找到他们想要的数据,进而进行分析。搜索能力是数据湖的十分重要的能力。 - 数据安全管控能力:
对数据的使用权限进行管控,对敏感数据进行脱敏或加密处理,也是数据湖能商用所必须具备的能力。 - 数据质量检验能力:
数据质量是分析正确的关键。因此必须对进入数据湖中的数据的质量情况进行检验。及时发现数据湖中数据质量的问题。为有效的数据探索提供保障。 - 自助数据探索能力:应该具备一系列好用的数据分析工具,以便各类用户可以对数据湖中的数据进行自助探索。包括:
- 支持对流、NoSQL、图等多种存储库的联合分析能力
- 支持交互式的大数据SQL分析
- 支持AI、机器学习分析
- 支持类似OLAP的BI分析
- 支持报表的生成
介绍
Dremio 是数据即服务平台,它使用户能够随时发现、管理、加速和共享任何数据,无论其位置、数量或结构如何。可对接多类数据源来进行BI分析;数据可视化依托于Tableau、Power BI和Qlik sense三类产品。
如上面图所示, Dremio的Data Lake引擎提供了这种性能,同时还提供了一个自助语义层,即使是非技术用户也可以轻松地访问和分析数据。它以一种保持数据湖存储固有的灵活性的方式做到这一点;你不必将数据复制并移动到第三方,也不必将其以专有格式保存。
Dremio提供:
- 直接在数据湖存储上进行闪电般的查询。Dremio技术,如数据反射、柱状云缓存(C3)和预测流水与由Gandiva提供动力的Apache Arrow一起工作,以交互速度直接在数据湖存储上执行查询。与Presto等传统数据湖引擎相比,这些查询加速技术结合在一起提供了4-100倍的性能。
- 一个自助语义层。该抽象层使数据工程师能够应用安全和业务含义,同时使分析师和数据科学家能够探索数据并导出新的虚拟数据集。
- 灵活开放。Dremio允许你避免供应商锁定,直接跨云或on-prem查询数据,并将数据保存在你拥有和控制的存储中。通过这种方式,你可以最大限度地灵活和自由地使用你认为合适的数据。
- 深度基础设施成本节约。Dremio结合了查询加速和高度弹性的计算资源,提供了显著的性能和成本优势。例如,与Presto相比,在相同的性能水平下,平均速度提高4倍会导致基础设施成本降低75%或更多。
总结来说
数据湖市场正在经历快速增长。更多的数据被存储在数据湖云存储中,如AWS S3和Microsoft ADLS。就其性质而言,数据湖与数据仓库的不同之处在于,它们不需要在加载数据之前定义严格的数据模式,这使得组织更容易从许多系统中收集原始数据进行分析。然而,随着数据湖的采用,挑战随之而来;传统的SQL引擎(如Presto和Athena)太慢了,无法直接从数据湖中查询数据,因为除了一些边缘的ad-hoc查询之外,大多数的分析用例都是如此,所以大多数组织更喜欢
使用数据仓库、提取、多维数据集和ETL的组合,使数据湖存储中的数据对于分析查询更加可用和可访问。然而,当数据仓库系统扩大使用范围时,拥有成本变得非常昂贵。此外,由于数据仓库解决方案是专有系统,因此存在一定数量的供应商锁定。
- Dremio Inc.是下一代数据湖引擎,旨在直接在Amazon Web Services Inc.,Microsoft Azure或私有云数据湖存储上提供自助服务访问和超快速查询。
- 通过使用S3格式的内存中缓存,Dremio可以显着加快数据访问速度,并绕开数据仓库常见的耗时的提取/转换/加载或ETL过程。
- Dremio 的软件提供了一种直接分析数据湖(大量无组织数据存储)中的数据的方法,而无需将数据复制并移动到数据仓库系统中。
- 分析师和数据科学家可以发现、探索和整理数据,而你的信息技术 (IT) 部门可以维护治理和安全措施。 通过 Dremio 可以轻松地将 Data Lake Storage 与 Blob 存储、Azure SQL 数据库、Azure Synapse SQL、HDInsight 等服务联接到一起。 借助 Dremio,Power BI 分析师可以搜索存储在 Data Lake Storage 上的新数据集、立即访问 Power BI 中的数据、创建可视化效果,以及以迭代方式优化报表。 分析师还可以创建合并了 Data Lake Storage 与其他数据库之间的数据的新报表。
- 这种方法还消除了聚合表、提取数据或使用单独的在线分析处理 (OLAP) 多维数据集以与 SQL 兼容的方式构建数据的需要。这也意味着你不需要将存储在基于对象的存储系统中的数据复制到专有数据仓库中以提供对基于 SQL 的应用程序的访问。
- 使用密钥管理工具对静态和传输中的数据进行加密,以确保客户端、控制平面和数据平面之间的安全通信。基于角色的访问控制 (RBAC) 使公司能够定义系统中每个数据集和对象的权限。
- 该公司还维护称为数据反射的源数据的物理优化表示。然后,查询优化器可以通过使用一个或多个数据反射来部分或完全显示查询结果来加速查询,而不必为每个启动的查询处理原始数据。
- Dremio 还提供对查询计划缓存的支持,它消除了重复查询的开销和延迟,此外还有一个高性能编译器,该编译器支持更大和更复杂的 SQL 语句,同时采用机器学习算法来减少所需的计算资源量启动 SQL 查询。
Dremio核心技术
Dremio的核心是利用高性能的柱状存储和执行,由Apache Arrow(内存中的柱状存储)和Gandiva(基于LLVM的执行内核)、Apache Arrow Flight(高速分布式协议)和Apache Parquet(磁盘上的柱状存储)提供支持。Dremio在高性能分析方面有着深厚的知识和经验,是Apache Arrow、Gandiva和Arrow Flight项目的共同创建者和当前维护者。
Dremio特点
Dremio Cloud 的推出是数百年工程技术的结晶,以下是让我如此兴奋的 10 个原因:
- 没有软件。Dremio Cloud 是真正的 SaaS。你无需安装、配置或监控软件。你不需要将日志文件或 ssh 收集到机器中。它总是在那里,我们会在一周内让它变得更好更快,而你不必担心版本和升级。
- 查询加速。Dremio Cloud 以独特的方式支持各种 BI 工作负载,包括任务关键型仪表板。借助正在申请专利的反射和柱状云缓存 (C3),可以直接在云对象存储上实现仪表板级别的响应时间,而无需将数据复制到仓库、集市、数据提取或多维数据集中。
- 无限规模。Dremio Cloud 提供无限的并发性。控制平面的微服务架构自动扩展,以便它可以并行计划和优化数百万个查询,并且执行平面中的引擎自动复制以执行路由到它们的任何工作负载。结果是你不再需要担心容量或进行尺寸调整。
- 工作负载隔离。Dremio Cloud 具有多引擎架构,其中根据路由规则或用户选择将查询分配给不同的引擎。结果是分析师不必担心“吵闹的邻居”,你也不必担心实习生的临时查询会影响 CEO 的仪表板。
- 受控自助服务。借助 Dremio 的语义层,你可以跨所有用户和工具提供一致的数据视图,同时允许 Dremio 的反射加速查询。你可以创建虚拟数据集,在细粒度级别控制谁可以访问数据。不再有数据杂乱无章和不一致的报告。
- 客户端工具集成。你可以利用 Tableau 和 Power BI 等工具中的原生 Dremio Cloud 连接器。借助基于 OAuth 2.0 的单点登录,Dremio Cloud 可以安全地识别 BI 最终用户。数据科学家可以利用 Arrow Flight 接口实现比 ODBC 和 JDBC 快 20 倍的性能。
- 企业级安全。你的数据在你自己的云存储桶中由你控制,所有通信和数据都经过加密。此外,Dremio 与常见的身份提供商(Azure AD、Okta、Google 等)集成,并允许你向用户和角色授予对任何对象或数据集的权限。Dremio Cloud 也符合 SOC2。
- 全局控制。Dremio Cloud 具有集中式控制平面,你和你的用户都可以访问该平面,无论你使用的是哪个云和区域。你可以集中管理用户、安全性、集成等。单一管理平台使数据管理更容易,尤其是对于拥有大量数据足迹的跨国公司。
- 成本效率和控制。使用 Dremio Cloud,你只需按使用量付费。引擎根据实时工作负载自动启动和停止副本,你在空闲时间无需支付任何费用。虽然系统可以无限扩展,但你的预算不会,因为我们可以轻松设置限制。内置和自定义使用报告可帮助你了解谁在消费什么——按工作、用户、引擎和项目。
- 美丽的用户体验。老实说 - 用户体验是大多数云基础架构的事后考虑。Dremio Cloud 将用户放在首位,从安全连接到你的云帐户的自动入职流程开始。除了 UI 之外,受 OAuth 2.0 保护的 REST API 使用户能够开发自定义应用程序,并使数据团队能够与其 CI/CD 流程集成。
Dremio数据结构
当数据存在于单个高性能关系数据库中时,BI工具,数据科学系统和机器学习模型的效果最佳。 不幸的是,这不是今天数据存在的地方。 因此,IT别无选择,只能通过定制ETL开发和专有产品的组合来弥补这一差距。 在许多公司中,分析堆栈包括以下层:
- 数据暂存 。 数据从各种操作数据库移动到单个临时区域,例如Hadoop集群或云存储服务(例如,Amazon S3)。
- 数据仓库 。 虽然可以直接在Hadoop和云存储上执行SQL查询,但这些系统并非旨在提供交互式性能。 因此,数据的子集通常被加载到关系数据仓库或MPP数据库中。
- 多维数据集,聚合表和BI提取 。 为了在大型数据集上提供交互式性能,必须通过在OLAP系统中构建多维数据集或在数据仓库中实现物理聚合表来预先聚合和/或索引数据。
这种多层架构带来了许多挑战。 它复杂,脆弱,速度慢,创造了一个数据消费者完全依赖IT的环境。
Dremio在数据分析中引入了一个新层,我们将其称为自助数据结构。 Dremio是一个开源项目,使业务分析师和数据科学家能够随时探索和分析任何数据,无论其位置,大小或结构如何。 Dremio将横向扩展架构与列式执行和加速相结合,以实现任何数据量的交互性能,同时使IT,数据科学家和业务分析师能够根据业务需求无缝地调整数据。
Dremio功能
Dremio支持的数据湖
Dremio支持的数据源
产品体验
Login page:9047-0-aef29794.university-labs.dremio.com/ ODBC URL: 104.196.50.166:10534
Use these credentials to login:
Username:fundamentals
Password:dremio123
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b8pXAUJ6-1634113800804)(C:\Users\FLY\AppData\Roaming\Typora\typora-user-images\image-20211008145323033.png)]
Dremio 在云数据湖上启用 BI
Dremio 是一种数据湖服务,使 BI 工具能够直接在数据湖和湖库上执行实时交互式查询,无论是直接从公司自己的 S3 存储桶或 Azure 存储帐户访问数据,还是通过安全的 Delta 从合作伙伴的云存储帐户访问数据共享协议。
借助 Dremio,分析师和数据科学家可以使用标准 SQL 和 BI 工具轻松分析数据,而无需将数据复制或移动到传统数据库中,同时体验与关系数据库相同的交互响应时间。因此,无需将数据加载到其他系统中,例如数据集市、多维数据集、聚合表和/或 BI 提取。
此外,Dremio 使业务分析师和数据科学家可以轻松地发现和探索数据湖中的数据集、管理新的虚拟数据集以及与公司内的其他用户协作,无论是直接探索数据湖还是使用目录(例如 Delta Sharing)服务器。Dremio 使用户可以随时与任何数据进行交互。
可视化集成
Tableau
Tableau的免费版本(Tableau public)
使用帮助文档
https://help.tableau.com/current/pro/desktop/zh-cn/gettingstarted_overview.htm
Tableau Public 与其他 Tableau 产品的区别体现在哪些方面?
公开共享
发布到 Tableau Public 的可视化可供所有人在线查看。Tableau Public 是一个公开(而不是私密)的数据平台。
免费且限制较少
任何人都可以在 Tableau Public 上浏览数以百万计的可视化效果并做出自己的贡献。本地保存和刷新数据会受到相应的限制。
完全托管
Tableau Public 上的可视化项可以应对数以百万计的查看者。所有基础架构均由 Tableau Public 管理,无需支付任何费用。
部署教程
Linux部署(RPM方式)
Docker方式(单节点)
Docker镜像
单节点部署
docker run -d --name=dremio -p 9047:9047 -p 31010:31010 -p 45678:45678 dremio/dremio-oss
单节点部署,其中包括的组件有:
- 嵌入式 Zookeeper
- Master Coordinator
- Executor
DockerCompose方式(集群)
#用于部署运行所依赖的服务 version: '3.9' services: # 基础环境组件 # 1.Dremio portainer: image: dremio/dremio-oss container_name: Dremio command: -H unix:///var/run/docker.sock restart: always deploy: resources: limits: cpus: '0.50' memory: 800M reservations: cpus: '0.1' memory: 256M ports: - "9047:9047" - "31010:31010" - "45678:45678" volumes: - /var/run/docker.sock:/var/run/docker.sock #数据文件挂载 # - portainer_data:/data portainer/portainer-ce #配置文件挂载 - /etc/localtime:/etc/localtime:ro - /etc/timezone/timezone:/etc/timezone:ro # 存储卷 # volumes: # portainer_data:
Kubernetes方式(集群)
https://github.com/dremio/dremio-cloud-tools/tree/master/charts/dremio_v2
参考链接
参考链接
https://chi.small-business-tracker.com/dremio-simpler-faster-data-analytics-983962
https://chennanni.github.io/note-tech/archive/dremio/
https://www.jianshu.com/p/cef2b2d1e815
https://hello.dremio.com/dremio-architecture-guide.html