【发布时间】:2015-06-04 14:57:46
【问题描述】:
请告诉我有没有更快的方法将 (*.gz) 直接移动到 ORC 表。
1)另一种想法,从 *.gz 文件到非分区表,而不是创建外部表并将 gz 文件数据转储到外部表。有没有其他方法可以更快地从 Gz 加载到外部表。我们正在考虑其他 2 种方法,例如我们可以使用带有自定义 .exe 的 ADF 来解压缩 *.gz 文件并上传到 Azure Blob。
例如:如果 *.Gz 文件为 10 GB,未压缩文件为 120 GB,则解压缩时间为 40 分钟,我们如何将这个未压缩的 120 GB 数据文件上传到 Azure Blob。我们是否需要使用 Azure Blob SDK 进行上传或将 ADF 执行 .exe 在数据存在的位置,即恰好在包含 Blob 数据的集群中。 (如果 ADF 在 Azure Blob 存储数据中心的集群上执行 .exe,那么将没有网络成本,没有网络延迟,上传未压缩数据的上传时间将非常少)。那么ADF可以吗?这会是正确的方法吗?
如果上述方法不起作用,如果我们创建 MR 解决方案,其中 Mapper 将解压缩 Gz 文件并上传到 Azure Blob 存储,是否会有任何性能改进,因为我只需要创建外部表指向到未压缩的文件。 MR 将在 Azure Blob 存储位置执行。
我们看到 ORC 和带分区的 ORC 的性能相同(有时我们看到黑白 ORC 分区和不带分区的 ORC 的差异很小)。 ORC With Partition 会比 ORC 表现更好。 ORC With Partition Bucketing 会比 ORC Partition 表现更好吗?我看到每个 ORC 分区文件接近 50-100 MB 并且 ORC 没有分区(每个文件大小 30-50 MB)。
**注意:120 GB 的未压缩数据被压缩为 17 GB 的 ORC 文件格式
【问题讨论】:
标签: hive azure-hdinsight