1. 创建Integration Services项目
如下图所示,首先建立Integration Services项目,自定义名称,项目保存位置等信息。
2. 创建Data Flow Task
在控制流选项卡的状态下创建Data Flow Task
3. 开始创建分层抽样数据
3.1 添加OLE DB Source
切换到数据流选项卡,添加OLE DB Source,用于装在数据源,在没有建立数据连接的情况下,右边有一个红色的叉。
注意:一定要使用OLE DB Source,而不是OLE DB Destination
3.2 设置数据源
双击上图的OLE DB Source,跳出如下OLE DB源编辑器
1.如果建立过连接,那么在OLE DB连接管理器点选需要连接即可;
2.如果没有连接可用,那么在新建一个数据库连接,配置相关信息即可;
3.建立好连接后,选择需要的表或者视图;
4.在预览里,可以查看连接好的表前200行数据;
3.3 创建Conditional Split
创建条件分层数据
在没有Conditional Split与OLE DB Source之间的数据流之前,如果如果去设置Conditional Split的属性,会报错,当你去编辑属性的时候,发现根本找不到你需要的 表字段。
3.4 建立OLE DB Source与Conditional Split之间的数据流
建立好数据流之后,再去设置分层条件
3.5 设置分层条件
根据列字段,设置分层的条件
如上图所示,这里使用了class字段进行分类,class字段位字符类型数据,因此在设置条件时,需要使用英文状态下的双引号包起来,如果出现如果所示的红色文字,请注意检查是否使用了中文状态下的双引号。输出名称自由设置即可。
3.6 插入Row Sampling
如下图所示,插入两个Row Sampling,一个用于装载Negative Data,一个用于装载Positive Data
注意:在建立Conditional Split与Row Sampling之间的数据流时,注意数据的数据与我们设置的Row Sampling预期是否一致。
3.7 设置Row Sampling的属性
双击Row Sampling,设置属性,如下图所,设置行数,选中样本输出名称及未选中样本输出名称,输出名称可以自行设定,便于自己区分。
勾选 使用以下随机种子选项,这样每次抽样的结果都会是一样的。
注意:此次采用分层抽样而非概率随机抽样,因此此次需要抽取的数据行数,需要自行根据实际情况进行设定,如果采用八二原则,则需要计算分类群体的总量数据,在总量的基础上再进行 训练->测试数据的分割。
3.8 插入Union All并设置数据的合并
在次之前,我们已经将数据进行分层,并设置好各层的训练数据,测试数据的配比,在此,我们需要将分层数据进行抽样汇总,需要使用Union All单元。
注意:数据输出之间的关联。
3.9 插入OLE DB Destination
最后,插入OLE DB Destination,用于分层抽样数据的目标宿主,在配置属性里面,新建表用于存储对应的分层数据。
注意:在创建向导里新建,会弹出创建的表,根据自己的需求,可以修改创建的表名称。
至此,基本已经建立分层抽样数据,但是,当我们查看数据流图时,发现OLE DB Destination上还有红色的叉。这是怎么回事。
3.10 设置新建表字段与数据源之间的关联。
上一步的红色叉警告,是因为我们没对OLE DB Destination的表字段与数据源之间的关联,我们只需要在属性中配置他们的关系即可。
打开属性向导,切换至映射选项卡,建立映射关系,确定即可。这样,红色警告就会消失。至此,分层抽样数据流图已经建立完毕。
4. 运行项目,对数据进行分层抽样
万事具备,只欠运行。
点击启动,运行,就可以得到最终的数据。
当我们看到数据流上有数据信息产生,有绿色的勾,那么即表示成功建立完毕。点击下面的链接,可以返回到数据流图界面。
5. 数据库查看分层抽样数据
打开数据库,可以发现数据库中创建了两个新表,即我们在3.9中创建的表,里面有对应的分层数据。
至此,分层抽样数据准备完毕,可以用于数据的建模分析。