【问题标题】:Can we migrate Teradata to DynamoDB我们可以将 Teradata 迁移到 DynamoDB
【发布时间】:2017-07-11 05:32:24
【问题描述】:

我们可以将 Teradata 迁移到 Amazon DynamoDB 吗?

例如,我在 Teradata 中有 table_1,我需要在 DynamoDB 中创建相同的表 table_1,我需要将数据从 Teradata table_1 移动到 dynamodb table_1。这是我能做到的吗?

假设我在 Teradata 中有这个下表。我可以在 DynamoDB 中创建它吗?我可以将数据从 Teradata 移动到 DynamoDB 吗?

CREATE SET TABLE FDM_TABLES_DB.OA3NF_CUSTOMER ,
NO FALLBACK ,
     NO BEFORE JOURNAL,
     NO AFTER JOURNAL,
     CHECKSUM = DEFAULT,
     DEFAULT MERGEBLOCKRATIO
     (
      CUSTOMER_ID DECIMAL(18,0) NOT NULL,
      CUSTOMER_NAME VARCHAR(360) CHARACTER SET LATIN CASESPECIFIC,
      CUSTOMER_TYPE_CD VARCHAR(30) CHARACTER SET LATIN CASESPECIFIC NOT NULL,
      OA_LAST_UPDATE_DTTM TIMESTAMP(6) FORMAT 'YYYY-MM-DDHH:MI:SS',
      OA_YEAR_ESTABLISHED DECIMAL(4,0),
      OA_CUSTOMER_STATUS_CD VARCHAR(10) CHARACTER SET LATIN CASESPECIFIC NOT NULL,
      OA_CUST_FISCAL_YEAREND_MONTH VARCHAR(30) CHARACTER SET LATIN CASESPECIFIC,
      CUSTOMER_NUMBER VARCHAR(30) CHARACTER SET LATIN CASESPECIFIC)
PRIMARY INDEX OA3NF_CUSTOMER_1 ( CUSTOMER_ID );

我们之前做过一个 CBS(哥伦比亚广播系统)项目。

在这个项目中,我们使用 Informatica PowerCenter 将数据从 Oracle 迁移到了 Teradata。客户现在希望将数据迁移到 AWS,我的经理要求我检查是否可以将数据从 Teradata 迁移到 DynamoDB?如果是,我们如何实现它?

例如,我在 Teradata 中有 3 个表:

  1. 客户下的客户我们有下面的列

    • 客户 ID、客户名称
  2. 产品下的产品我们有下面的列

    • product_id、product_name、customer_name

3.address 表下我们有下面的列

  • customer_id、customer_address、customer_name

在 customer_ID 或 Customer_name 的帮助下,我可以一次从所有三个表中获取数据。

您是说我们无法在 DynamoDB 中实现这一点,因为它是 NoSQL 数据库。那么,如果我想从 DynamoDB 中的所有三个表中获取数据,我需要做什么?

根据我们开发的项目,如果我们想从 Teradata 加载数据,我们有维度表和事实表,我们需要如何将其加载到 DynamoDB,我的问题是这是否可能?

幸运的是,我们也需要报告。

【问题讨论】:

  • 你可能想把它加载到 Redshift 中,不是吗?
  • 是的,团队正在努力 @Henry,但我的任务是寻找可以使用 dynamodb 实现它的第二个选项。
  • 这就像要求飞机的替代品,但涉及自行车。它根本不可行。是的,从技术上讲,您可以在 DynamoDB 中拥有您的数据仓库,但您并没有针对它进行远程结构化。非 Redshift 替代方案将是 Athena、EMR/Hive,并且可能在 DynamoDB 上使用 EMR/Hive。
  • 非常感谢您的回复@henry

标签: amazon-web-services amazon-dynamodb


【解决方案1】:

Amazon DynamoDB 是一个 NoSQL 数据库。

虽然您绝对可以将数据迁移到 DynamoDB,但您将无法对 DynamoDB 运行 SQL 命令。

传统上,SQL 数据库(例如 Teradata)用于报告。这是使用简单命令处理大量数据的好方法。但是,查询可能需要一些时间,从几秒到几分钟不等。

NoSQL 数据库(例如 DynamoDB)不接受 SQL。它通常以编程方式访问。然而,好处是它具有高度可扩展性并且可以提供有保证的查询速度——但查询只是 Get/Put,而不是复杂的查询。

所以...是的,您可以迁移它。但是您是否愿意这样做取决于您的用例。

【讨论】:

  • 感谢您的回复@john Rotenstein,需要小帮助..我还有几个问题请回答我,这对我有很大帮助..
  • 1.所以我们可以将 teradata 迁移到 dynamodb,你能用小例子解释一下我们如何迁移 2. 我们需要哪种工具来将数据从 teradata 迁移到 dynamo db 3. 是否存在连接在 dynamodb 中...?如果没有,我们需要如何定义一个表与另一个表之间的关系?说我有“客户”表和“产品”表,所以我可以从 dynamodb 中的两个表中获取数据,就像我如何在 sql 中获取数据一样?
  • SQL 数据库是关系型数据库。 Amazon DynamoDB不是关系数据库。因此,您无法定义表之间的关系,并且一次只能访问一个表中的数据。请问……您为什么考虑迁移到 DynamoDB?你能告诉我们更多关于你的用例吗? (请随意编辑问题以添加详细信息,而不是将其添加为评论。)
  • 非常感谢您的回复@jhon Rotenstein 我又添加了几个问题,请仔细研究一下
  • 您不能将 DynamoDB 用于您列出的任务。您应该告诉您的经理 DynamoDB 不是一个合适的选择。如果您正在寻找数据仓库,请使用 Amazon Redshift。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-27
  • 1970-01-01
  • 2013-09-04
  • 2012-05-23
  • 1970-01-01
  • 2020-09-05
  • 2019-07-08
相关资源
最近更新 更多