将 Hive 表迁移到 redshift
Migrate Hive tables to redshift
让我解释一下场景:
我有数百个配置单元表存储在 S3(ORC、Parquet)上,所以要明确一点,没有 HDFS。
现在,我有兴趣将其中一些迁移到 Redshift 以进行 运行 一些性能测试。
我知道 redshift 不支持 ORC、Parquet,所以我需要创建一些 CSV/JSON 才能使用 COPY 命令。
我正在考虑使用 Hive 本身创建临时 CSV 表,然后迁移到 Redshift。我也在考虑使用 Spark 来移动这些数据。
有人有过这种情况的经验吗?
有一种将数据迁移到 redshift 的简单方法。因此,首先您需要将该 parquet 或 orc 加载到 Spark(pyspark、java 或 scala)中,然后您可以使用 databricks 包将这些数据直接插入到 redshift 中。下面是包含一些示例的 databricks 包的 link。
您可以设置 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
让我解释一下场景: 我有数百个配置单元表存储在 S3(ORC、Parquet)上,所以要明确一点,没有 HDFS。 现在,我有兴趣将其中一些迁移到 Redshift 以进行 运行 一些性能测试。 我知道 redshift 不支持 ORC、Parquet,所以我需要创建一些 CSV/JSON 才能使用 COPY 命令。 我正在考虑使用 Hive 本身创建临时 CSV 表,然后迁移到 Redshift。我也在考虑使用 Spark 来移动这些数据。 有人有过这种情况的经验吗?
有一种将数据迁移到 redshift 的简单方法。因此,首先您需要将该 parquet 或 orc 加载到 Spark(pyspark、java 或 scala)中,然后您可以使用 databricks 包将这些数据直接插入到 redshift 中。下面是包含一些示例的 databricks 包的 link。
您可以设置 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