
Snowflake 通过我们最新的工作负载 Unistore 再次改变了数据管理和数据分析。几十年来,交易数据和分析数据一直保持分离,极大地限制了组织发展业务的速度。借助 Unistore,组织可以使用单一、统一的数据集来开发和部署应用程序,并近乎实时地同时分析事务和分析数据。
我们已经看到消除数据孤岛可能产生的影响——无论是为大规模数据带来更快的分析,还是改变数据协作的世界。Unistore 创建的新用例将定义现在和未来的数据驱动意味着什么,无论是简化您的业务、了解和服务您的客户,还是揭示以前无法预见的市场机会。
什么是Unistore?
Unistore 是一种新的工作负载,它提供了一种在单个平台上同时处理事务和分析数据的现代方法。Unistore 的创建有很多原因。我们的客户厌倦了在他们的系统之间移动数据。他们不再希望跨多个解决方案管理冗余数据集。他们希望在需要时访问数据,并且能够在一个地方处理几乎所有数据。但 Unistore 的影响远比统一数据重要得多。团队现在可以直接在 Snowflake 上构建事务性业务应用程序,对其事务性数据运行实时分析查询,并获得一致的治理和安全方法。
Adobe、UiPath、IQVIA、诺华和 Wolt 等 Snowflake 客户都是 Unistore 的早期采用者。我们已经看到他们将 Unistore 用于使用案例,例如存储管道的应用程序状态、处理数据服务或支持在线功能存储,甚至支持企业事务应用程序。早期的反馈非常好,我们的客户很高兴 Snowflake 现在可以支持这些事务用例。客户渴望并准备好利用 Unistore 的众多优势,包括:
- 为现代发展的未来提供动力的单一数据集
通过将交易和分析数据集成到单个数据集中,几乎可以立即对交易数据采取行动,构建更好的客户体验并获得新的见解。
- 在 Snowflake 上进行简单且简化的事务性应用程序开发
构建企业事务应用程序等,具有与 Snowflake 数据云相同的简单性、性能和易用性。
- 合并的交易和分析系统
在单一平台上简化架构并标准化安全和治理控制,同时无需移动或复制数据。
交易和分析数据的单一平台
用于事务用例的混合表
混合表(目前处于私人预览版)是一种新的雪花表类型,为 Unistore 提供支持。我们构建混合表时的一个关键设计原则是需要支持应用程序开发人员所依赖的最常见的事务功能。显然,性能是任何事务应用程序的一个关键方面,尤其是对于快速单行操作。为了支持这一点,我们开发了一个全新的基于行的存储引擎,因此现在可以直接在 Snowflake 上构建企业事务应用程序。
开始使用混合表很容易。只需以与任何其他传统雪花表相同的方式创建一个表。但是为了支持这些事务性工作负载,混合表需要一个主键,而 Snowflake 现在将强制应用程序主键的唯一性。
CREATE HYBRID TABLE Orders (
Orderkey number(38,0) PRIMARY KEY,
Customerkey number(38,0),
Orderstatus varchar(20),
Totalprice number(38,0),
Orderdate timestamp_ntz,
Clerk varchar(50)
);
当然,您的应用程序需要的不仅仅是一个表。应用程序的数据模型由使用主键和外键的表之间的关系定义。使用混合表,您可以使用现在强制执行的参照完整性约束来定义关系。让我们来看一个例子。首先,我们将创建混合表和相关的约束:
CREATE HYBRID TABLE Customers (
CustomerKey number(38,0) PRIMARY KEY,
Customername varchar(50)
);
-- Create order table with foreign key referencing the customer table
CREATE OR REPLACE HYBRID TABLE Orders (
Orderkey number(38,0) PRIMARY KEY,
Customerkey number(38,0),
Orderstatus varchar(20),
Totalprice number(38,0),
Orderdate timestamp_ntz,
Clerk varchar(50),
CONSTRAINT fk_o_customerkey FOREIGN KEY (Customerkey) REFERENCES Customers(Customerkey),
INDEX index_o_orderdate (Orderdate)); -- secondary index to accelerate time-based lookup现在让我们插入一个客户记录和一个违反约束的订单:
INSERT INTO Customers
VALUES (97, 'CustA'),
(94, 'CustB'),
(72, 'CustC'),
(34, 'CustD'),
(23, 'CustE');
-- Inserting order fails because foreign key, customer 36, does not exist in the customer table
INSERT INTO Orders
VALUES (8, 36, 'OPEN', 100, current_timestamp::timestamp_ntz, 'Margaret')混合表包括更多支持构建和运行企业事务应用程序的新功能:附加约束、索引和行级锁定等等。这只是一个开始,我们将继续发展 Unistore 和 Hybrid Tables,并提供更多功能以支持更多用例。
交易数据分析
虽然直接在 Snowflake 上构建事务应用程序的能力本身就令人兴奋,但 Unistore 的力量并不止于此。Unistore 使您能够直接对交易数据执行分析,从而释放数据的全部潜力。这些数据对分析具有很大价值,这就是为什么我们看到许多客户将他们的交易数据从外部数据库加载到 Snowflake 中以挖掘业务洞察力。但是,如果您在交易发生时对其进行分析,您可以获得更强大的洞察力。想象一下,将包含十亿条记录的订单表立即合并到报告每周销售趋势的仪表板中。使用混合表,
SELECT date_trunc(week, Orderdate) AS OrderWeek, SUM(Totalprice) AS WeeklyAmount
FROM Orders
GROUP BY OrderWeek
ORDER BY OrderWeek除了直接对事务数据进行分析查询之外,混合表还允许您打破事务数据和历史数据之间的数据孤岛。您可以将混合表与 Snowflake 中已有的其他数据(现有的 Snowflake 表、来自 Snowflake Marketplace 的数据或从其他团队共享的数据)连接起来。例如,您可以使用现有营销活动的信息覆盖您的订单数据,而无需在系统之间移动任何数据。
SELECT c.Customername, ch.Campaignsource, SUM(o.Totalprice) AS TotalAmount
FROM Orders o
JOIN Customers c ON o.Customerkey = c.Customerkey
JOIN CampaignHistory ch ON o.campaignid = ch.campaignid
GROUP BY ch.Campaignsource, c.Customername
ORDER BY TotalAmount一切尽在数据云中
您已经看到使用混合表是多么容易,以及它如何改变您的架构、应用程序和工作流。Unistore 最重要的特性可能是它是由 Snowflake 的数据云提供支持的众多工作负载之一。这意味着您可以获得某些好处,例如:
- 在您的数据中始终如一地实施数据治理和安全控制
- 使用 Snowflake 的弹性性能引擎实现真正的大规模云性能
- 无需借助 Snowflake 的简单性来管理基础架构、查询调优、更新或数据连续性
- 与跨云和区域共享的数据无缝集成,无需复制或移动数据
Snowflake 通过减少要学习的概念、要处理的技术和要转动的旋钮的数量来提供这种级别的集成和一致性。这才是真正的雪花方式。
混合表只是 Unistore 将成为的开始。在过去几年中,Snowflake 不断提供许多创新,现在组织可以使用单一平台来处理交易和分析数据的日子已经到来。获得曾经困难甚至无法想象的洞察力将成为主流只是时间问题。因此,请加入我们,与 Unistore 一起打造不可思议的事物。
注册公共预览版
如果您有兴趣试用 Unistore 和 Hybrid Tables,请在可用后注册公共预览版。要了解更多信息,请联系您的 Snowflake 代表并查看以下资源:
文章来源:https://www.snowflake.com/blog/introducing-unistore/




