将 Hive 表迁移到红移

Posted

技术标签:

【中文标题】将 Hive 表迁移到红移【英文标题】:Migrate Hive tables to redshift 【发布时间】:2018-03-14 10:00:15 【问题描述】:

让我解释一下场景: 我在 S3(ORC、Parquet)上存储了数百个配置单元表,所以要明确的是没有 HDFS。 现在,我有兴趣将其中一些迁移到 Redshift 以运行一些性能测试。 我知道 redshift 不支持 ORC、Parquet,所以我需要创建一些 CSV/JSON 才能使用 COPY 命令。 我正在考虑使用 Hive 本身创建临时 CSV 表,然后迁移到 Redshift。我也在考虑使用 Spark 来移动这些数据。 任何人都有这种情况的经验?

【问题讨论】:

【参考方案1】:

您可以设置 Redshift Spectrum,使您的 S3 表看起来像 Redshift 表,然后您可以直接查询数据或将其引入内部 Redshift 表。https://docs.aws.amazon.com/redshift/latest/dg/c-spectrum-external-tables.html

完全支持 ORC 和 Parquet。https://docs.aws.amazon.com/redshift/latest/dg/c-spectrum-data-files.html

【讨论】:

【参考方案2】:

有一种将数据迁移到 redshift 的简单方法。因此,首先您需要将该 parquet 或 orc 加载到 Spark(pyspark、java 或 scala)中,然后您可以使用 databricks 包直接将这些数据插入到 redshift 中。下面是 databricks 包的链接,其中包含一些示例。

https://github.com/databricks/spark-redshift

【讨论】:

我试过这个选项,redshift databricks 包效果很好

以上是关于将 Hive 表迁移到红移的主要内容,如果未能解决你的问题,请参考以下文章

红移:数据迁移

AWS Glue 数据从 S3 迁移到 Redshift

将镶木地板文件加载到红移时如何格式化时间戳字段?

Spark没有将所有数据保存到红移

定期将数据从 S3 存储桶流式传输到红移

使用 Sqoop 将视图(数据库表重)从 Oracle 迁移到 Hive