我们正在使用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表?
℃。我们如何确保一个客户永远无法看到其他客户的数据?
由于
答案 0 :(得分:0)
@Praveen:使用映射器克服每个客户端数据到Hadoop服务器的停机时间,因为在这种情况下客户端数据包含主键。 最好地使用每个客户端的分区和日期分区。 在开始sqoop导入之前,必须为HDFS文件位置实现TDE区域。 * TDE:Trasparent Data Encryption专区,是客户数据安全区域的最佳实践。