迁移BI仪表盘直接运行在你的云数据湖上

Jason Hughes

要直接跳转到教程步骤,请单击 here.

Introduction

为了回答重要的业务问题,每个组织都努力以数据为驱动,并使他们的数据消费者能够做出基于证据的决策. Further, as the amount of data, questions and data consumers grow, 组织成为和/或保持数据驱动的唯一方法是以自助方式提供这些功能.

允许各种类型的数据消费者以自助方式获得其业务问题的答案的一种常见方法是通过业务智能(BI)仪表板. BI仪表板在整个组织中被广泛使用,以一种直观和有效的方式为所有技术技能水平的用户提供对业务的洞察和对业务问题的回答.

However, 而仪表板帮助整个组织的分析民主化, 受益于个人用户以及整个业务, 当它们在今天的组织中实际实现时,会出现一些限制, 哪些对业务有严重影响.

为用户提供仪表盘的后端架构传统上看起来是这样的:

与此方法相关的问题有几个, which are exacerbated by the tens, 一个组织中使用的数百甚至数千个指示板:

  1. Slow turnaround time for changes
    1. 每次仪表板更改通常都需要更新BI提取, data warehouse structures, and the ETL processes, 乘以在整个组织中使用的无数个指示板, 数据工程的待办事项大量增加,导致在回答业务问题时出现长时间的延迟.
    2. 与十大网赌靠谱网址平台合作的一些组织说,即使是很小的仪表盘更改也可能需要三周或更长的时间来处理这个体系结构.
  2. Data size limitation
    1. 用户访问的数据比他们通常需要的要少得多, 在数据的粒度方面(e.g.,月对日)以及数据集的历史(e.g., 1 month versus 3 years).
  3. 仪表板响应时间随着数据大小和复杂性的增加而变慢
    1. 这让用户感到沮丧,并降低了数据消费者能够和/或愿意提出的问题的数量.
  4. 数据漂移和法规遵从性问题
    1. 数据仓库和BI提取中的额外数据副本(以及中间的数据集市)会导致数据漂移和法规遵从性问题.
  5. Operational cost
    1. 数据工程师必须创建和管理ETL管道, data warehouse structures and BI extracts, increasing operational costs.
  6. Infrastructure cost
    1. 您必须为ETL计算资源支付额外费用, data warehouse compute, data warehouse data storage, and BI extract resources.
  7. BI提取是该BI工具独有的
    1. Users who use other BI, 组织中的数据科学和SQL客户端工具无法利用优化, 相反,他们必须创造自己的优化, further exacerbating data drift, 法规遵从性和基础设施成本问题.
    2. 即使组织现在只使用一个BI工具, 你锁在仪表盘的工具, 禁止该选项,允许用户自由选择其他BI工具或在未来迁移到另一个BI工具.

这种方法有这么多缺点,为什么它是仪表板的一种常见架构呢? 最主要的原因是十大网赌靠谱网址平台受到了工具能力的限制. Not anymore.

组织每天都使用Dremio为数据消费者提供指示板,而不受上述限制. 使用Dremio,提供仪表盘的架构如下:

这篇博客文章展示了将一个由传统架构支持的仪表盘迁移到由Dremio支持的开放数据湖架构支持的仪表盘是多么简单. 十大网赌靠谱网址平台将一步一步地介绍如何获取基于提取的仪表盘,并修改它,以直接对您的数据湖存储运行实时查询.

以下是执行迁移的步骤:

  1. Launch Dremio
  2. Link Dremio to the dataset
  3. 在BI工具中添加Dremio作为仪表板的源
  4. 用Dremio替换仪表板的提取数据源
  5. Optimize dashboard performance

这篇博客文章中的所有内容和资源都是公开的, so you can follow along step by step.

Alternatively, 您可以使用您组织的一个指示板,并使用相同的说明让它在Dremio上运行.

This tutorial uses Tableau, Dremio’s AWS Edition, and S3, however, 当使用不同的BI工具时,过程通常是相同的.g., Power BI) and different data lakes (e.g.(ADLS),尽管具体步骤可能略有不同,这取决于BI工具.

本教程使用以下仪表盘分析纽约市的出租车搭乘数据集,以提供业务kpi:

From a business perspective, 底部和右侧图表可以采用周级粒度, however, 将数据以日为粒度告知十大网赌靠谱网址平台的决策将会更有价值.

Further, 因为这个仪表板基于一个聚合表, 所使用的特定计算是在表的物理结构中硬编码的. 例如,指示板使用的总和和平均值 Total Amount field. If business requirements were to change, as they inevitably do, 的最小值和最大值 Total Amount field, many updates would be needed.

在当前支持仪表板的传统架构中, 这些类型的改变一般需要下列步骤:

  1. End user raises a ticket with the request.
  2. 当数据工程能够接收到请求时, 它们修改ETL作业,以在工作日而不是每周汇总数据, and add new max and min fields for Total Amount.
  3. 如果现有的仪表板流程不能经历停机, 除了现有的聚合表外,还会创建一个新的聚合表.
  4. 测试填充新聚合表的新ETL作业. 一旦它们被测试和验证,工作就被安排好了.
  5. 然后在本地修改仪表板以使用新的聚合表, 更改指示板中的数据源和字段引用,以查看新的日级别粒度字段以及新的Max和min字段. 这一步通常由不同的团队来处理.
  6. Once the dashboard change is complete, 仪表板与新聚合表上新提取的创建和调度一起发布.
  7. 完成QA和某些级别的UAT之后, 指向现有仪表板的任何内容都被更改为指向新的仪表板.
  8. After sufficient production usage, the old dashboard, extract, aggregation table, and ETL jobs are retired.

对于许多组织来说,这个过程可能需要三周或更长时间. 下面,十大网赌靠谱网址平台将演示由Dremio支持的仪表板如何更简单、更快地进行更改.

Now, 让十大网赌靠谱网址平台深入了解并通过步骤让仪表盘在由Dremio驱动的现代数据湖架构上运行.

Prerequisites

如果您还没有运行Dremio部署, 最简单的方法是通过Dremio的AWS版, 能让你在五分钟内和德莱米奥合作吗. Here is a link to the 即将在AWS上推出Dremio, a video walkthrough of the steps, and step-by-step documentation.

Dremio can also be deployed via Amazon’s EKS, on Microsoft Azure via AKS or ARM template, on Hadoop via YARN, or even as standalone processes.

虽然本演练推荐使用Dremio AWS Edition,但可以使用其中任何一个版本. 如果您正在使用上面链接的打包工作簿和后台数据, 建议您将其部署在AWS的us-west-2(俄勒冈州)地区或附近,因为所使用的示例数据是在us-west-2的S3中, 从架构和性能的角度来看,最接近数据重心的部署是最佳实践.

First, 您希望将Dremio指向云数据湖中将用于仪表板的数据集. In this instance, the Samples source in Dremio is an S3 bucket.

  1. Add a new data lake source and select the Sample Source option.
  2. Select the samples.8666hh.com bucket.
  3. Click the promote icon on the right side of the page for the NYC-taxi-trips folder.

    在BI工具中添加Dremio作为仪表盘的源代码

  1. Open the dashboard in Tableau Desktop.
  2. Select New Data Source and choose Dremio Connector by Dremio when using the Tableau SDK connector, or Other Databases (ODBC) when using the Dremio ODBC driver.
  3. Fill out the connection information:
    1. 如果使用Dremio ODBC驱动程序,则选择Dremio Connector作为驱动程序,并输入31010作为端口.
    2. For server,输入您访问Dremio UI的IP.
    3. 输入启动Dremio时创建的用户名和密码.
  4. On the data source page in Tableau, select DREMIO as the database and Samples.samples.8666hh.com as the schema. Drag the NYC-taxi-trips dataset into the canvas.

用Dremio替换仪表板的提取数据源

  1. Go to the sheet Number of Rides by Month.
  2. Right click on the NYC_TAXI_TRIPS_WEEKLY_AGG data source and select Replace Data Source. 默认选项将替换仪表板现有的数据源(云数据仓库的一个摘录),而不是对数据湖中的数据向Dremio发起实时查询. Click OK.

    When you do this, 您将在左侧栏中看到一些旧字段上的红色感叹号,以及在画布架子中对这些字段的引用都是红色的. 这是Tableau报告Dremio数据集中不存在这些字段的方式, which is expected. 逻辑纽约旅行数据集并没有真正的 Avg Total Amount field, it just has a Total Amount 求平均值.

    这是聚合表局限性的一个很好的例子. We want access to the Total Amount 数据本身,然后十大网赌靠谱网址平台可以做平均值,求和,计数和十大网赌靠谱网址平台想要执行的任何其他计算. We just need to tell Tableau that Avg Total Amount and Sum Total Amount are really one field in the data (Total Amount),分别应用平均和总和聚合.

  3. 对于左边栏中带有红色感叹号的每个字段,右键单击它,选择 Replace References,并选择Dremio提供的非聚合表字段.
    1. For example, replace Avg Total Amount with Total Amount, Avg Fare Amount with Fare Amount, and Pickup Week with Pickup Datetime.
    2. 确保所有6个带有红色感叹号的字段都替换了它们的引用(i.e.,不再有红色感叹号).
    3. 注意,因为Tableau不允许用对动态字段的引用替换对数据字段的引用, you can’t use Replace References for Num Rides with the right field NYC-taxi-trips (Count),所以你需要在使用它的两个地方更换.
    4. In the worksheets Number of Rides by Month and Total Number of Rides, drag NYC-taxi-trips (Count) over the red box referencing SUM(Num Rides) to replace it. You can then right click on Num Rides in the left sidebar and click Delete.

现在,仪表盘直接对数据湖中的数据进行实时查询, 而无需创建和管理任何ETL作业, data warehouses, or BI extracts. 您可以修改拾取时间过滤器,以查看基于这些实时查询的仪表板更改. 为了服务于仪表板,每个实时查询都要分析3亿行.

注意,在几个查询之后,仪表板上的响应时间从3秒到10秒不等, 这取决于筛选器中包含的日期数量, 哪一个比较适合分析十亿行中的三分之一. 这一性能对于某些仪表板来说已经足够了,具体取决于性能目标.

However, 如果能给用户提供一种秒级的体验,那就更好了, 这样他们可以问更多的商业问题,并有一个真正的互动体验.


Optimize Dashboard Performance

使用Dremio,仪表盘性能的进一步优化非常简单, both for data providers and data consumers, using a Dremio feature called data reflections.

At a high level, 您可以将数据反射看作是实体化视图和索引的混合. 它进行类似于物化视图的预计算, however, 它向用户透明地替换优化后的结构, much like an index, 因此,用户和应用程序可以在他们想要的逻辑和语义级别上操作, while still experiencing interactivity.

  1. 在Dremio UI中查看NYC-taxi-trips数据集,然后选择 Reflections tab of the dataset.
  2. You have the option to create a raw or aggregation reflection. 因为这是一个进行聚合的仪表盘, as most dashboards do, 您需要创建一个聚合反射以进行优化.
    1. 您需要指定哪些字段是维度(为哪些字段使用单独的值)和度量(为哪些字段使用聚合的值). Based on these straightforward guidelines, pickup_datetime 尺寸和车费、小费和总金额是度量吗.
    2. Dremio建议哪些字段是维度,哪些是基于数据类型和分布的度量. In this case, 你只是想要删除一些不在仪表板中使用的字段,以降低资源使用:删除 passenger_count from dimensions and trip_distance_mi 通过单击字段名称旁边的减号图标从度量.
  3. 通过切换聚合反射来启用它.
  4. Click Save.
  5. (Optional) Click History 查询创建反射任务的详细信息和状态. 大约需要10到20秒才能完成.
  6. 回到仪表盘并使用过滤器.

    注意,仪表板的响应几乎是即时的, 允许仪表盘用户拥有真正的交互体验,并以思考的速度提出业务问题.

    Also, 请注意,应用程序的性能是在没有修改任何应用程序逻辑或代码的情况下优化的. 这是一个强大的功能,通过将应用程序逻辑与性能优化解耦,大大提高了洞察的时间.

  7. (可选)在Dremio UI中打开作业页面,查看Tableau针对每次过滤器更改发送给Dremio的三个查询. 请注意,Dremio在不到一秒的时间内对所有这些信号并行响应. 事实上,每个查询都在400毫秒或更短的时间内完成.

请注意,如果你想用其他数据湖SQL引擎优化这个仪表盘, 您必须在数据湖中创建聚合表来实现交互性能. However, 这就引发了ETL和数据复制管理的同样问题,而这些问题正是十大网赌靠谱网址平台一开始就试图通过抛弃传统架构来避免的.

修改仪表板以显示天级别的粒度,而不是周级别

As noted earlier, 底部和右侧图表可以采用周级粒度, however, 对十大网赌靠谱网址平台的决策来说,更有价值的是以天为粒度查看数据.

您可能已经注意到,当十大网赌靠谱网址平台替换提取数据源时,数据仓库中聚合表中的字段将日期字段设置为 pickup_week rather than pickup_datetime. 因此,十大网赌靠谱网址平台无法访问日期级别的粒度.

Now with Dremio accessing the raw data, 十大网赌靠谱网址平台能够轻松地更改仪表板以显示日期级别的粒度.

  1. In the Average Fare and Average Tip worksheet, right click on WEEK(Pickup Datetime) and select the Day which has 8 右边灰色的是所有年份和月份的月日总数.
  2. In the Average and Sum Total Amount Last Month worksheet, right click on WEEK(Pickup Datetime) and select the Day which has May 8, 2015 右边灰色的是个人日期.

现在回到仪表板视图,它现在在两个图表中显示日级别的粒度. 这为您提供了一个可操作得多的数据视图.

Benefits of This Approach

这种架构消除或减轻了传统架构的所有问题:

  1. 仪表板更改和业务问题的快速周转时间.
  2. 没有数据大小限制,因为访问和优化是基于一个具有成本效益的扩展平台.
  3. 随着数据大小和复杂性的增加,仪表板响应时间保持互动性. 这是因为访问和优化是基于性能扩展平台的.
  4. 最小的数据漂移和法规遵从问题,因为派生数据结构由平台管理, 这与索引不会导致数据漂移或遵从性问题类似吗.
  5. 由于平台管理性能优化,大大降低了运营成本.
  6. 通过直接在数据湖中分析数据的成本高效平台进行访问和优化,大大降低了基础设施成本.
  7. 集中优化,而不考虑当前和将来使用的客户端工具, whether it’s multiple BI tools, SQL clients, custom applications, Python notebooks, etc.

Conclusion

将基于传统数据仓库的体系结构支持的仪表板迁移到由Dremio支持的开放数据湖体系结构非常简单,并为个人用户提供了许多好处, business units, 以及组织中更广泛的分析领域.

从Dremio专家寻求更多信息或帮助? Feel free to post on the community forum or reach out to us at hello@8666hh.com.

友情链接: 1 2 3 4 5 6 7 8 9 10