小编sha*_*359的帖子

将apache Iceberg表写入azure ADLS / S3而不使用外部目录

我正在尝试在云对象存储上创建冰山表格式。

\n

在下图中我们可以看到冰山表格式需要一个目录。该目录存储当前元数据指针,该指针指向最新的元数据。Iceberg 快速入门文档列出了 JDBC、Hive MetaStore、AWS Glue、Nessie 和 HDFS 作为可以使用的目录列表。

\n

在此输入图像描述

\n

我的目标是将当前元数据指针(version-hint.text)以及表数据的其余部分(元数据、清单列表、清单、镶木地板数据文件)存储在对象存储本身中。

\n
\n

以HDFS为目录,table\xe2\x80\x99s元数据文件夹中有一个名为version-hint.text的文件,其内容为当前元数据文件的版本号。

\n
\n

将 HDFS 视为可能的目录之一,我应该能够使用 ADLS 或 S3 来存储当前元数据指针以及其余数据。例如:spark 使用 ABFSS 接口连接到 ADLS 并创建冰山表和目录。

\n

我的问题是

\n
    \n
  • 使用版本提示文件作为 ADLS/S3 中的当前元数据指针是否安全?如果我这样做,我会失去任何冰山功能吗?查看一位贡献者的评论表明它对于生产来说并不理想。
  • \n
\n
\n

版本提示文件用于 Hadoop 表,之所以这样命名,是因为它们适用于 HDFS。我们还将它们用于本地 FS\n测试,但它们不能与 S3 安全地同时使用。对于 S3,您需要一个元存储来在交换表元数据位置时强制执行原子性。您可以使用iceberg-hive 中的\nHive 元存储。

\n
\n
    \n
  • 看看这个线程的评论,version-hint.text 文件是可选的吗?
  • \n
\n
\n

我们遍历可能的元数据位置,仅当\n没有新快照可用时才停止

\n
\n

有人可以澄清一下吗?

\n

我正在尝试使用 Iceberg 进行 POC。此时的要求是能够至少每10分钟将新数据从数据块写入到表中。这个频率将来可能会增加。

\n

数据一旦写入,将被databricks和dremio读取。

\n

amazon-s3 apache-iceberg

0
推荐指数
1
解决办法
1942
查看次数

标签 统计

amazon-s3 ×1

apache-iceberg ×1