0

一般来说,我是 SQL Server 和数学函数的新手。

我的最终目标是使用 Sqoop 将数据从 SQL Server 导入 Hadoop。

约束:

  1. 有丰富的模式,因此,要导入数百个表
  2. 了解这些表的开发人员暂时不可用

为了获得最佳的导入性能,有必要使用其值均匀/均匀分布的列(不需要是 PK 的一部分但需要),请参阅以下示例以进行详细说明:

来自表 PK(DateDimensionId,DriverDimensionId,VehicleDimensionId) 和no 的样本数据。行数是 1203769164

样本数据

为了了解 PK 列的不同值,我执行了:

select COUNT_BIG(distinct DriverDimensionId) cnt_DriverDimensionId
  from [VehicleData].[DateVehicleDriverAggregate];

1581023

select COUNT_BIG(distinct DateDimensionId) cnt_DateDimensionId
  from [VehicleData].[DateVehicleDriverAggregate];

46930

select COUNT_BIG(distinct VehicleDimensionId) cnt_VehicleDimensionId
  from [VehicleData].[DateVehicleDriverAggregate];

218041

但是,我仍然不知道以上 3 个(或表中的其他列)中的哪一个具有统一的值,例如,如果我考虑DateDimensionId,它有 46930 个不同的值,但它们是否均匀分布在 (2011040300, 2012040300) 这样的范围内, (2012040300, 2013040300) 等等。

是否有一些数学函数或可以用来决定使用哪一列的东西?

4

0 回答 0