一般来说,我是 SQL Server 和数学函数的新手。
我的最终目标是使用 Sqoop 将数据从 SQL Server 导入 Hadoop。
约束:
- 有丰富的模式,因此,要导入数百个表
- 了解这些表的开发人员暂时不可用
为了获得最佳的导入性能,有必要使用其值均匀/均匀分布的列(不需要是 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) 等等。
是否有一些数学函数或可以用来决定使用哪一列的东西?