【问题标题】:Azure: How to create single file rather than multiple from external table?Azure:如何从外部表创建单个文件而不是多个文件?
【发布时间】:2021-12-13 11:47:43
【问题描述】:

所以我设置了一个外部文件来将一些数据拉到一个 blob 中,但是这样做时它会生成多个文件,而不是我期望的那个。

当我向一位同事询问这个问题时,他们建议它是因为桌面上的分布集,并且我可以使用 top 强制它推送到单个文件中。

有没有更好的解决方案?

不幸的是,我来自 Teradata 平台,对 Azure 了解不多。我对将这些数据提取到 blob CSV 的其他方法持开放态度,这位同事刚刚告诉我,使用外部表将是最快的提取方法。我总共要取出大约 340GB。

CREATE EXTERNAL DATA SOURCE [dataplatform_dataecosystem] WITH (TYPE = HADOOP, LOCATION = N'abfss://dataecosystem@(removed server name).dfs.core.windows.net', CREDENTIAL = [msi_cred])
GO

所以我们有了文件格式设置:

CREATE EXTERNAL FILE FORMAT [eff_td_csv] WITH (FORMAT_TYPE = DELIMITEDTEXT, FORMAT_OPTIONS (FIELD_TERMINATOR = N'|', USE_TYPE_DEFAULT = False), DATA_COMPRESSION = N'org.apache.hadoop.io.compress.GzipCodec')
GO

我们有外部表设置:

create external table devl_trade.IRI_Test with
(
    Location = 'usr-data-engineering/rdp-extracts/cal'
    ,File_Format = [eff_td_csv]
    ,Data_Source = [dataplatform_dataecosystem]
)
AS
Select * from live_view.calendar

【问题讨论】:

  • 你能分享更多关于你已经尝试过的细节吗?这个外部文件是什么,一些片段将有助于提出更好的建议。但是,如果您只想复制,请尝试Copy data tool
  • @KarthikBhyresh-MT - 我添加了一些代码来展示我们目前如何设置它。这只是在测试表上,但这也会产生多个文件。
  • 对不起,如果有错误请纠正我,您想将此 340GB 文件作为单个 csv 文件存储到 adls 中吗?
  • 正确,已压缩。我可能会考虑将数据分成一些更小的块,但它们的大小仍然是几 GB。
  • 嗨,是的,看来我将在之后继续合并文件。复制数据工具确实有效,但使用并发槽的时间更长。我会将其标记为已解决。

标签: azure azure-sql-database azure-blob-storage azure-data-factory


【解决方案1】:

可以使用复制工具生成单个文件,但使用外部表然后合并文件会更好。

【讨论】:

    猜你喜欢
    • 2021-08-28
    • 1970-01-01
    • 2020-10-30
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多