亚马逊AWS官方博客

AWS Lake Formation — 具有自动压缩功能的单元格级安全性和受控表正式发布

数据湖可以帮助您打破数据孤岛,并将不同类型的分析组合到一个集中的存储库中。您可以将所有结构化和非结构化数据存储在此存储库中。但是,设置和管理数据湖涉及大量手动、复杂且耗时的任务。AWS Lake Formation 让您可以在数天内轻松设置安全的数据湖,而不需要数周或数月。

我很高兴与大家分享一些正式发布的新功能,这些功能可以进一步简化数据加载、优化存储并管理对数据湖的访问:

  • 受控表 – 一种新型的 Amazon Simple Storage Service (Amazon S3) 表,可以轻松可靠地摄取和管理任何规模的数据。受控表支持 ACID 事务,允许多个用户同时在多个受控表中可靠地插入和删除数据。ACID 事务还允许您运行返回一致和最新数据的查询。如果在提取、转换和加载 (ETL) 流程中或更新期间出现错误,将不会提交更改,并且更改将不可见。
  • 使用自动压缩对受控表进行存储优化 – 启用此选项后,Lake Formation 会自动将受控表中的小型 S3 对象压缩为更大的对象,以通过分析引擎(例如 Amazon AthenaAmazon Redshift Spectrum)优化访问。通过使用自动压缩,您不必实施自定义 ETL 作业来读取、合并数据并将其压缩到新文件中,然后替换原始文件。
  • 具有行级和单元格级安全性的精细访问控制 – 您可以根据执行操作的身份来控制对查询结果和 AWS Glue ETL 作业中特定行和列的访问。通过这种方式,您不必为不同的角色和法规创建(并保持更新)数据子集。这适用于受控表和传统 S3 表。

使用受控表、ACID 事务和自动压缩
Lake Formation 控制台中,我可以在创建表时启用受管控的数据访问和管理。自动压缩默认已启用,可以使用 AWS Command Line Interface (CLI)AWS 开发工具包将其禁用。

控制台屏幕截图。

受控表有一个清单,用于跟踪作为表数据一部分的 S3 对象。在向表中添加新对象时,我可以使用 UpdateTableObjects API 使清单保持最新状态,并且可以使用 AWS CLI 和开发工具包来调用它。此 API 由 AWS Glue ETL 库隐式使用。

此外,我还可以访问新的 Lake Formation API 来启动、提交或取消事务。我可以使用这些 API 来包装数据加载、数据转换以及输出一致且最新的数据。

使用行和单元格级别的安全性
在许多使用案例中,您希望根据访问数据的用户的角色,限制对表中特定列、行或行与列的组合的访问。例如,在美国、德国和法国设有办事处的公司可以为欧盟 (EU) 的分析师创建筛选条件,以限制对欧盟客户的访问。

控制台屏幕截图。

筛选条件可以强制这些分析师无法访问某些列,例如出生日期 (dob) 和电话。此外,可以使用筛选条件表达式筛选对单个行的访问。您可以使用基于开源 PartiQL 语言的 SQL 兼容语法配置行筛选条件表达式。在这种情况下,只有国家/地区等于德国或法国 (country='DE' OR country='FR') 的行是可见的。

控制台屏幕截图。

可用性和定价
这些新功能现已在以下 AWS 区域推出:美国东部(弗吉尼亚北部)、美国西部(俄勒冈)、欧洲(爱尔兰)、美国东部(俄亥俄)和亚太地区(东京)。

查询受控表或受行和单元格级安全性保护的表时,按扫描的数据量付费(最少 10MB)。使用受控表时,事务元数据按跟踪的 S3 对象的数量收费,您需要为事务请求的数量付费。自动压缩根据处理的数据收费。有关更多信息,请参阅 AWS Lake Formation 定价页面。

在实施这些功能的同时,我们引入了一个新的 Lake Formation Storage API,该 API 与 AWS GlueAmazon AthenaAmazon Redshift SpectrumAmazon QuickSight 等工具集成。您可以直接在应用程序中使用此存储 API 来查询具有类似 SQL 语法的表(不支持联接),并获得受控表和单元级安全性的好处。

请参阅预览期间发布的详细博客系列以了解更多信息:

使用 AWS Lake Formation 的有效数据湖

利用这些新功能来简化数据湖的创建和管理。

Danilo