将多个客户端数据加载到 Hadoop 的最佳实践
best practice to load multiple client data into Hadoop
我们正在使用 Cloudera CDH 在 Hadoop 框架上创建 POC。我们想将多个客户端的数据加载到 Hive tables 中。
截至目前,我们在 SQL 服务器上为每个客户端提供单独的数据库。对于 OLTP,此基础架构将保持不变。 Hadoop 将用于 OLAP。
我们有一些主要维度 table,每个客户都相同。所有客户端数据库都具有完全相同的模式。这些 table 具有相同的主键值。到现在为止,这很好,因为我们有单独的客户端数据库。现在我们正在尝试将多个客户端数据加载到同一个数据容器 (Hive tables)。现在,如果我们通过 Sqoop 作业将数据从多个 SQL 服务器数据库直接加载到 Hive 中,我们将拥有具有相同主键值的多行。我正在考虑在 Hive tables 中使用代理键,但 Hive 不支持自动递增,但可以通过 UDF 实现。
我们不想修改 SQL 服务器数据,因为它是 运行 生产数据。
一个。将多个客户端数据加载到 Hadoop 生态系统中的 standard/generic way/solution 是什么?
b。 sql 服务器数据库 table 的主键如何轻松映射到 Hadoop Hive table?
c。我们如何确保一个客户端永远无法看到另一个客户端的数据?
谢谢
@Praveen:使用映射器来克服每个客户端数据到 Hadoop 服务器的停机时间,因为在这种情况下客户端数据保存主键。
为每个客户端和日期分区充分利用分区。
在开始 sqoop 导入之前,您必须为 HDFS 文件位置实施 TDE 区域。
*TDE:透明数据加密区域,客户端数据安全区域的最佳实践。
我们正在使用 Cloudera CDH 在 Hadoop 框架上创建 POC。我们想将多个客户端的数据加载到 Hive tables 中。
截至目前,我们在 SQL 服务器上为每个客户端提供单独的数据库。对于 OLTP,此基础架构将保持不变。 Hadoop 将用于 OLAP。 我们有一些主要维度 table,每个客户都相同。所有客户端数据库都具有完全相同的模式。这些 table 具有相同的主键值。到现在为止,这很好,因为我们有单独的客户端数据库。现在我们正在尝试将多个客户端数据加载到同一个数据容器 (Hive tables)。现在,如果我们通过 Sqoop 作业将数据从多个 SQL 服务器数据库直接加载到 Hive 中,我们将拥有具有相同主键值的多行。我正在考虑在 Hive tables 中使用代理键,但 Hive 不支持自动递增,但可以通过 UDF 实现。
我们不想修改 SQL 服务器数据,因为它是 运行 生产数据。
一个。将多个客户端数据加载到 Hadoop 生态系统中的 standard/generic way/solution 是什么?
b。 sql 服务器数据库 table 的主键如何轻松映射到 Hadoop Hive table?
c。我们如何确保一个客户端永远无法看到另一个客户端的数据?
谢谢
@Praveen:使用映射器来克服每个客户端数据到 Hadoop 服务器的停机时间,因为在这种情况下客户端数据保存主键。 为每个客户端和日期分区充分利用分区。 在开始 sqoop 导入之前,您必须为 HDFS 文件位置实施 TDE 区域。 *TDE:透明数据加密区域,客户端数据安全区域的最佳实践。