在大数据时代,SQL作为数据分析的通用语言,其在处理海量数据集时的作用尤为重要。传统的RDBMS在面对TB乃至PB级别的数据时,往往会因性能瓶颈和扩展性限制而显得力不从心。因此,为适应大数据场景,Apache Hive、Presto(现更名为Trino)等专门针对大数据查询优化的工具应运而生,它们不仅保留了SQL的易用性,还引入了诸多创新技术以实现对大规模数据的高效查询。本文将深入剖析Hive、Presto(Trino)的特点、应用场景,并通过丰富的代码示例展示如何在大数据环境中利用这些工具进行高性能SQL查询。
随着大数据存储和处理需求的多样化,如何构建一个统一的数据湖存储,并在其上进行多种形式的数据分析成了企业构建大数据生态的一个重要方向。Netflix 发起的 Apache Iceberg 项目具备 ACID 能力的表格式成为了大数据、数据湖领域炙手可热的方向。
在构建本地数据中心的时候,出于Apache Kudu良好的性能和兼备OLTP和OLAP的特性,以及对Impala SQL和Spark的支持,很多用户会选择Impala / Spark + Kudu的技术栈。但是由于Kudu对本地存储的依赖,导致无法支持的数据高可用和弹性扩缩容,以及社区的逐渐不活跃,越来越多的用户,开始迁移到云上的Trino / Spark + Hudi 技术栈,本文通过一个实际的例子,来看一下迁移过程中发生的代码的重构和数据的迁移。
在构建数据湖时,可能没有比存储数据格式更重要的决定了。结果将直接影响其性能、可用性和兼容性。
作为一名专注于大数据技术的博主,我深知Presto(现更名为Trino)作为一款高性能SQL查询引擎,在现代数据栈中的重要地位。本文将结合我个人的面试经历,深入剖析Trino的核心特性和应用场景,分享面试必备知识点,并通过代码示例进一步加深理解,助您在求职过程中游刃有余地应对与Trino相关的技术考察。
客路旅行(KLOOK)是一家专注于境外目的地旅游资源整合的在线旅行平台,提供景点门票、一日游、特色体验、当地交通与美食预订服务。覆盖全球100个国家及地区,支持12种语言和41种货币的支付系统,与超过10000家商户合作伙伴紧密合作,为全球旅行者提供10万多种旅行体验预订服务。KLOOK数仓RDS数据同步是一个很典型的互联网电商公司数仓接入层的需求。对于公司数仓,约60%以上的数据直接来源与业务数据库,数据库有很大一部分为托管的AWS RDS-MYSQL 数据库,有超100+数据库/实例。RDS直接通过来的数据通过标准化清洗即作为数仓的ODS层,公司之前使用第三方商业工具进行同步,限制为每隔8小时的数据同步,无法满足公司业务对数据时效性的要求,数据团队在进行调研及一系列poc验证后,最后我们选择Debezium+Kafka+Flink+Hudi的ods层pipeline方案,数据秒级入湖,后续数仓可基于近实时的ODS层做更多的业务场景需求。
一些具体的对比可以看这张图: 5. Iceberg 我们先看看Iceberg的官网是如何介绍它的: Apache Iceberg is an open table format for huge analytic datasets. Iceberg adds tables to Trino and Spark that use a high-performance format that works just like a SQL table. 我的理解是,Iceberg以表的形式来组织底层数据,并对上面提供了高性能的表级别计算能力。 它的核心思想就是在时间轴上跟踪表的所有变化:
修复 DatabaseMetaData#getTables 和 DatabaseMetaData#getColumns 以包含 Iceberg、Raptor、Accumulo 和 Blackhole 连接器的视图。 (#11063, #11060)
Robinhood 的使命是使所有人的金融民主化。Robinhood 内部不同级别的持续数据分析和数据驱动决策是实现这一使命的基础。我们有各种数据源——OLTP 数据库、事件流和各种第 3 方数据源。需要快速、可靠、安全和以隐私为中心的数据湖摄取服务来支持各种报告、关键业务管道和仪表板。不仅在数据存储规模和查询方面,也在我们在数据湖支持的用例方面,我们从最初的数据湖版本[1]都取得了很大的进展。在这篇博客中,我们将描述如何使用各种开源工具构建基于变更数据捕获的增量摄取,以将我们核心数据集的数据新鲜延迟从 1 天减少到 15 分钟以下。我们还将描述大批量摄取模型中的局限性,以及在大规模操作增量摄取管道时学到的经验教训。
尘锋信息 (www.dustess.com) 是基于企业微信生态的一站式私域运营管理解决方案供应商,致力于成为全行业首席私域运营与管理专家,帮助企业构建数字时代私域运营管理新模式,助力企业实现高质量发展。
互联网技术发展的当下,数据是各大公司最宝贵的资源之一已经是不争的事实。收据的收集、存储和分析已经成为科技公司最重要的技术组成部分。大数据领域经过近十年的高速发展,无论是实时计算还是离线计算、无论是数据仓库还是数据中台,都已经深入各大公司的各个业务。
最近在了解 Presto 和 Trino 对于 Deltalake Connector 的相关实现原理,这里了解完刚好用一篇文章总结下,一是可以帮助自己未来的回顾,二是也希望能够帮助大家,下面都是个人理解,若理解有误,欢迎指出,共勉。
数据湖是一个集中式的存储库,允许你以任意规模存储多个来源、所有结构化和非结构化数据,可以按照原样存储数据,无需对数据进行结构化处理,并运行不同类型的分析,对数据进行加工,例如:大数据处理、实时分析、机器学习,以指导做出更好地决策。
为了让业务团队可以更好的跟踪自己消息的生产和消费状态,需要一个类似于表格视图的消息列表,用户可以直观的看到发送的消息;同时点击详情后也能查到消息的整个轨迹。
数据湖是一个集中式的存储库,允许你以任意规模存储多个来源、所有结构化和非结构化数据,可以按照原样存储数据,无需对数据进行结构化处理,并运行不同类型的分析对数据进行加工,例如:大数据处理、实时分析、机器学习,以指导做出更好地决策。
Svelte 是一种全新的构建用户界面的方法。传统框架如 React 和 Vue 在浏览器中需要做大量的工作,而 Svelte 将这些工作放到构建应用程序的编译阶段来处理。
亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 3 月 8 日我们引来了 Apache Doris 2.1.0 版本的正式发布,欢迎大家下载使用。
此前Apache Hudi社区一直有小伙伴询问能否使用Amazon Redshift(数仓)查询Hudi表,现在它终于来了。
大数据技术的发展历程中,继数据仓库、数据湖之后,大数据平台的又一革新技术——湖仓一体近年来开始引起业内关注。市场发展催生的数据管理需求一直是数据技术革新的动力。比如数据仓库如何存储不同结构的数据?数据湖又如何避免因为缺乏治理导致的数据杂乱现象?今天的文章想跟大家具体聊聊我们的数栈如何解决这些问题。
随着越来越多的公司依靠数据来推动关键业务决策、改进产品供应并更好地服务客户,公司捕获的数据量比以往任何时候都多。Domo 的这项研究估计,2017 年每天会生成 2.5 百亿字节的数据,到 2025 年,这一数字将增加到 463 艾字节。但如果公司不能快速利用这些数据,那么这些数据又有什么用呢?针对数据分析需求的最佳数据存储这一话题长期以来一直存在争议。
参考资料:https://segment.com/blog/cultivating-your-data-lake/
环球易购创建于 2007 年,致力于打造惠通全球的 B2C 跨境电商新零售生态,2014 年通过与百圆裤业并购完成上市,上市公司「跨境通(SZ002640)」是 A 股上市跨境电商第一股。经过多年的努力,在海外市场建立了广阔的销售网络,得到了美国、欧洲等多国客户的广泛认可,公司业务多年来一直保持着 100% 的增长速度。
数据库界最近的一个趋势是将数据库拆解成它的组成部分。每个组件都是单独提供的,因此基础设施工程师可以将它们集成到数据库中。
在本博客中,我们将讨论在构建流数据平台时如何利用 Hudi 的两个最令人难以置信的能力。
Apache Hive 在 2010 年作为 Hadoop 生态系统的一个组成部分突然出现,当时 Hadoop 是进行大数据分析的新颖且创新的方式。
Apache Hive 在 2010 年作为 Hadoop 生态系统的一部分崭露头角,当时 Hadoop 是一种新颖而创新的大数据分析方法。Hive 的功能就是实现 Hadoop 的 SQL 接口。它的架构包括两个主要服务:一是查询引擎:负责执行 SQL 语句;二是元存储:负责在 HDFS 中将数据收集虚拟化为表。
TiDB 在使用过程中,随着用户数据量的持续增长,存储成本在数据库总成本中的占比将会越来越高。如何有效降低数据库存储成本摆在了许多用户面前。
CDC(Change Data Capture)从广义上讲所有能够捕获变更数据的技术都可以称为CDC,但本篇文章中对CDC的定义限定为以非侵入的方式实时捕获数据库的变更数据。例如:通过解析MySQL数据库的Binlog日志捕获变更数据,而不是通过SQL Query源表捕获变更数据。Hudi 作为最热的数据湖技术框架之一, 用于构建具有增量数据处理管道的流式数据湖。其核心的能力包括对象存储上数据行级别的快速更新和删除,增量查询(Incremental queries,Time Travel),小文件管理和查询优化(Clustering,Compactions,Built-in metadata),ACID和并发写支持。Hudi不是一个Server,它本身不存储数据,也不是计算引擎,不提供计算能力。其数据存储在S3(也支持其它对象存储和HDFS),Hudi来决定数据以什么格式存储在S3(Parquet,Avro,…), 什么方式组织数据能让实时摄入的同时支持更新,删除,ACID等特性。Hudi通过Spark,Flink计算引擎提供数据写入, 计算能力,同时也提供与OLAP引擎集成的能力,使OLAP引擎能够查询Hudi表。从使用上看Hudi就是一个JAR包,启动Spark, Flink作业的时候带上这个JAR包即可。Amazon EMR 上的Spark,Flink,Presto ,Trino原生集成Hudi, 且EMR的Runtime在Spark,Presto引擎上相比开源有2倍以上的性能提升。在多库多表的场景下(比如:百级别库表),当我们需要将数据库(mysql,postgres,sqlserver,oracle,mongodb等)中的数据通过CDC的方式以分钟级别(1minute+)延迟写入Hudi,并以增量查询的方式构建数仓层次,对数据进行实时高效的查询分析时。我们要解决三个问题,第一,如何使用统一的代码完成百级别库表CDC数据并行写入Hudi,降低开发维护成本。第二,源端Schema变更如何同步到Hudi表。第三,使用Hudi增量查询构建数仓层次比如ODS->DWD->DWS(各层均是Hudi表),DWS层的增量聚合如何实现。本篇文章推荐的方案是: 使用Flink CDC DataStream API(非SQL)先将CDC数据写入Kafka,而不是直接通过Flink SQL写入到Hudi表,主要原因如下,第一,在多库表且Schema不同的场景下,使用SQL的方式会在源端建立多个CDC同步线程,对源端造成压力,影响同步性能。第二,没有MSK做CDC数据上下游的解耦和数据缓冲层,下游的多端消费和数据回溯比较困难。CDC数据写入到MSK后,推荐使用Spark Structured Streaming DataFrame API或者Flink StatementSet 封装多库表的写入逻辑,但如果需要源端Schema变更自动同步到Hudi表,使用Spark Structured Streaming DataFrame API实现更为简单,使用Flink则需要基于HoodieFlinkStreamer做额外的开发。Hudi增量ETL在DWS层需要数据聚合的场景的下,可以通过Flink Streaming Read将Hudi作为一个无界流,通过Flink计算引擎完成数据实时聚合计算写入到Hudi表。
(声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区、知乎、自媒体平台、第三方开发者媒体等亚马逊云科技官方渠道)
8 月 7 日,StarRocks 3.1 重磅发布。新版本中,StarRocks 将影响性能表现的技术要素全部从存算一体架构引入到了存算分离架构,并针对云原生环境里的易用性、稳定性进行了一系列的优化。
在 Halodoc,我们始终致力于为最终用户简化医疗保健服务,随着公司的发展,我们不断构建和提供新功能。我们两年前建立的可能无法支持我们今天管理的数据量,以解决我们决定改进数据平台架构的问题。在我们之前的博客中,我们谈到了现有平台的挑战以及为什么我们需要采用 Lake House 架构来支持业务和利益相关者以轻松访问数据。在这篇博客中,我们将讨论我们的新架构、涉及的组件和不同的策略,以拥有一个可扩展的数据平台。
RDD(弹性分布式数据集) 是 PySpark 的基本构建块,它是容错、不可变的 分布式对象集合。
存储结构:目前虾皮的存储结构从上到下主要分为存储层、调度层、计算引擎层和平台管理层。
官方文档:https://clickhouse.tech/docs/zh/engines/table-engines/mergetree-family/mergetree/#choosing-a-primary-key-that-differs-from-the-sorting-key
年底啦~2022 年即将走到尾声,不过袋鼠云对产品品质的坚持始终如一,这段时间我们对产品本身以及客户反馈的一些问题进行了持续的更新和优化,例如新增任务告警,进行了 Connector 相关功能优化,以及支持跨时间分区圈群等。
湖仓一体架构模式的两个关键支柱是开放性和互操作性。在云存储系统(如S3、GCS、ADLS)上构建数据湖仓,并将数据存储在开放格式中,提供了一个您技术栈中几乎每个数据服务都可以利用的无处不在的基础。
Iceberg项目2017年由Netflix发起, 它是在2018年被Netflix捐赠给Apache基金会的项目。在2021年Iceberg的作者Ryan Blue创建Tabular公司,发起以Apache Iceberg为核心构建一种新型数据平台。
在 Apache Hudi支持完整的Schema演变的方案中 硬核!Apache Hudi Schema演变深度分析与应用 读取方面,只完成了SQL on Spark的支持(Spark3以上,用于离线分析场景),Presto(用于在线OLAP场景)及Apache Hive(Hudi的bundle包)的支持,在正式发布版本中(Hudi 0.12.1, PrestoDB 0.277)还未支持。
RDD(弹性分布式数据集) 是 PySpark 的基本构建块,是spark编程中最基本的数据对象; 它是spark应用中的数据集,包括最初加载的数据集,中间计算的数据集,最终结果的数据集,都是RDD。 从本质上来讲,RDD是对象分布在各个节点上的集合,用来表示spark程序中的数据。以Pyspark为例,其中的RDD就是由分布在各个节点上的python对象组成,类似于python本身的列表的对象的集合。区别在于,python集合仅在一个进程中存在和处理,而RDD分布在各个节点,指的是【分散在多个物理服务器上的多个进程上计算的】 这里多提一句,尽管可以将RDD保存到硬盘上,但RDD主要还是存储在内存中,至少是预期存储在内存中的,因为spark就是为了支持机器学习应运而生。 一旦你创建了一个 RDD,就不能改变它。
Presto 在 Facebook 的诞生最开始是为了填补当时 Facebook 内部实时查询和 ETL 处理之间的空白。Presto 的核心目标就是提供交互式查询,也就是我们常说的 Ad-Hoc Query,很多公司都使用它作为 OLAP 计算引擎。但是随着近年来业务场景越来越复杂,除了交互式查询场景,很多公司也需要批处理;但是 Presto 作为一个 MPP 计算引擎,将一个 MPP 体系结构的数据库来处理海量数据集的批处理是一个非常困难的问题,所以一种比较常见的做法是前端写一个适配器,对 SQL 进行预先处理,如果是一个即时查询就走 Presto,否则走 Spark。这么处理可以在一定程度解决我们的问题,但是两个计算引擎以及加上前面的一些 SQL 预处理大大加大我们系统的复杂度。
一、开源OLAP综述 二、开源数仓解决方案 三、ClickHouse介绍 四、StarRocks介绍 五、Trino介绍 六、客户案例
键值存储 ( key-value store ),也称为 K/V 存储或键值数据库,这是一种非关系型数据库。每个值都有一个唯一的 key 关联,也就是我们常说的 键值对。
Trino[1] 是一种支持使用 SQL 访问任意数据源的 SQL 查询引擎,其能够提供更加灵活与高效的查询服务。本章节将简单介绍 Trino 的基本功能与使用场景。
数据仓库被认为是对结构化数据执行分析的标准,但它不能处理非结构化数据。包括诸如文本、图像、音频、视频和其他格式的信息。此外机器学习和人工智能在业务的各个方面变得越来越普遍,它们需要访问数据仓库之外的大量信息。
本文提出了一个将轮询重定向到 Amazon Simple Storage Service(S3)的解决方案,S3 是一个由公有云提供商 Amazon Web Services(AWS)管理的高可用、可扩展和安全的对象存储服务。我们将会展现一个使用 AWS Lambda 函数的 serverless 实现,但是如果你想使用 S3 的话,并不强制要使用 AWS Lambda 函数。
随着移动互联网,物联网技术的发展,数据的应用逐渐从 BI 报表可视化往机器学习、预测分析等方向发展,即 BI 到 AI 的转变。
如果你希望将数据快速提取到HDFS或云存储中,Hudi可以提供帮助。另外,如果你的ETL /hive/spark作业很慢或占用大量资源,那么Hudi可以通过提供一种增量式读取和写入数据的方法来提供帮助。
本文介绍了 SmartNews 利用 Flink 加速 Hive 日表的生产,将 Flink 无缝地集成到以 Airflow 和 Hive 为主的批处理系统的实践。详细介绍我们遇到的技术挑战和应对方案,以供社区分享。 项目背景 SmartNews 在过去 9 年的时间,基于 Airflow, Hive, S3, EMR 等技术栈构建了大量的数据集。随着数据量的增长,这些离线表的处理时间在逐渐拉长。另外,随着业务方迭代节奏的加快,对表的实时性也提出了更高的要求。因此,SmartNews 内部发起了 Speed
领取专属 10元无门槛券
手把手带您无忧上云