我们正在使用 Cloudera CDH 在 Hadoop 框架上创建 POC。我们想将多个客户端的数据加载到 Hive 表中。
到目前为止,我们在 SQL Server 上为每个客户端都有单独的数据库。对于 OLTP,此基础架构将保持不变。Hadoop 将用于 OLAP。我们有一些对每个客户都相同的主要维度表。所有客户端数据库都具有完全相同的架构。这些表具有相同的主键值。到目前为止,这很好,因为我们为客户提供了单独的数据库。现在我们正在尝试将多个客户端数据加载到同一个数据容器(Hive 表)中。现在,如果我们通过 Sqoop 作业将数据从多个 SQL Server 数据库直接加载到 Hive 中,我们将拥有多个具有相同主键值的行。我正在考虑在 Hive 表中使用代理键,但 Hive 不支持自动增量,但可以使用 UDF 来实现。
我们不想修改 SQL Server 数据,因为它正在运行生产数据。
一种。将多个客户端数据加载到 Hadoop 生态系统的标准/通用方式/解决方案是什么?
湾。sql server 数据库表的主键如何轻松映射到 Hadoop Hive 表?
C。我们如何确保一个客户端永远无法看到其他客户端的数据?
谢谢