首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ETL数据在一列上,但将分区放入不同的列。我怎样才能做得更快呢?

ETL数据在一列上,但将分区放入不同的列。我怎样才能做得更快呢?
EN

Stack Overflow用户
提问于 2020-05-07 17:28:04
回答 1查看 33关注 0票数 0

我有一个到etl的映射,一个大表有大约30亿条记录。

该表在RECORDDATE列上有分区,我昨天才将数据加载到分段表,在分段表加载完成后,我使用exchange_partition将数据加载到主表。

这可以很好地工作。但是我们需要将分区放到不同的列( OTHERDATECOLUMN),但我仍然希望获取RECORDDATE列上的数据。所以我不能使用exchange_partition,我需要先删除记录,然后直接插入到主表中。这很慢。

我该如何解决这个问题呢?

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2020-05-10 05:11:53

在查看了所有评论之后,我没有看到任何快速而聪明的解决方案。要么使用简单的delete -尽管需要很长时间,或者...

尝试按顺序加载数据,只需几个步骤-如下所示:

  • 检查您的OTHERDATECOLUMN数据集有多少个不同的RECORDDATE日期
  • Now循环:对于OTHERDATECOLUMN中的每个日期:
    • 获取一个日期数据并加载到<代码>D9表<代码>H210<代码>H111添加<代码>D12表中的所有数据-需要用新数据(*)替换的数据除外(请参见下面针对
    • 的示例查询(与最初一样),以便将数据从OTHERDATECOLUMN获取到

(*)从TARGET_TABLE加载不在TEMP_TABLE中的数据的查询

代码语言:javascript
复制
INSERT INTO TEMP_TABLE
SELECT * FROM TARGET_TABLE 
WHERE NOT EXISTS
(SELECT * FROM TEMP_TABLE WHERE TARGET_TABLE.ID = TEMP_TABLE.ID)

我希望我说得够清楚了:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61654344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档