假设我们有10个不同的文件需要加载到10个不同的表中。表名应与文件名相同。建议使用SSIS包一次有效地加载所有文件?如何将多个文件中的数据加载到多个表中?
回答
- 创建SSIS包。
- 创建10个平面文件连接(对于每个文件)。
创建10个数据流中的每个对象:
- 平面文件源(选择txt文件)
- 数据变换元
- 派生列元素
- 的OLE DB目标元素(在此元素,你需要在表格选择combox附近按下“New”按钮,SSIS会给你SQL查询和表格创建代码,将会有你文件中的所有列,也可以编辑表格名称)
在插入表之前,创建SQL Task以截断这些表。 您可能需要编辑一些数据类型,因为几乎总是SSIS提供字符串类型-varchar。
在使用BCP命令,两个SQL任务和一个Foreach容器的SSIS中,可以轻松实现此操作。
在数据库中为各个平面文件创建表架构。
现在在数据库中创建一个新表(Path_Table),该表应该有三列,如下所示。
第1栏:TABLE_NAME第2栏:FILE_PATH第3栏:FILE_NAME
实施例中插入(Path_Table)数据
Insert into Path_Table Values (‘dept_table’,’d:\\’,’department.txt’)
它的工作原理出去表的“n”个号码。
在此之后打开SSDT创建一个新的SSIS package.Now拖“执行SQL任务”
创建名称数据类型的对象“tbl_variable”的新变量。
现在编辑“执行SQL任务”,并在常规选项卡中进行OLE DB连接,并在SQL Statement选项卡下面写下查询。
//选择TABLE_NAME,FILE_PATH,FILE_NAME从dbo.Path_table //
现在SQL任务变化的结果集属性设置为“整个结果集,”
在SQL任务的“执行左窗格“选择”结果集“查询的结果映射到我们的变量(tbl_variable)。
现在拖放“每个容器”。在左侧窗格中,从下拉列表中选择“Collection”作为“For Each ADO Enumerator”,然后为ADO对象源变量选择变量(tbl_variable)。最后选择“枚举模式”作为“第一个表中的行”。
'tbl_variable'结果有三列。现在在“变量映射”窗格中,将三列结果映射到三个新变量(数据类型为varchar),即tbl_name,file_path和file_name,索引号分别为(0,1,2),因为它将成为下一个参数映射SQL任务(加载数据) 现在在“对于每个容器”里面带一个“SQL任务”。在“SQL命令” 写入查询为:
declare @tblname sysname=?
declare @dir varchar(500)=?
declare @file_name varchar(500)=?
declare @SQLstring varchar(2000)
set @SQLstring='BCP AdventureWorks2012.'[email protected]blname+' IN '[email protected]+'\'[email protected]_name+'.txt -c -t, -S PRINHYLTPDL0937 -T -R'
exec xp_cmdshell @SQLstring
go
在上面的查询使数据库和其它的变化按您的要求。 在参数映射窗格中的“SQL任务”中,Map前面分别以Parameter Name分别为0,1和2创建了三个变量(tbl_name,file_path和file_name)结果作为上述查询的输入。
- 1. 将多个文件加载到ssis中的多个表中
- 2. 如何将多个文件模式加载到数据库中?
- 3. 使用sql加载器使用单个控制文件将多个数据文件加载到多个表中
- 4. 使用单个ctl文件将数据从多个数据文件加载到多个表中
- 5. 将单个csv文件中的数据加载到多个Cassandra表中?
- 6. 如何将数据Infile加载到多个表中?
- 7. 如何将多个文件加载到Hive表中?
- 8. 将源表中的数据加载到多个表中
- 9. 如何使用SSIS包将Excel文件数据加载到多个表中?
- 10. 如何写一个SQL Loader控制文件将数据加载到多个表
- 11. 如何将数据加载到D3中的多个阵列
- 12. 如何将多个文件加载到我的Excel工具中?
- 13. 在MYSQL中将多个CSV文件加载到单表中
- 14. DB将CSV加载到多个表中
- 15. SQL Server:Bulk将数据加载到具有多个文件组的分区表中
- 16. 将多维数组加载到C++中的数据文件中
- 17. 如何将xls数据从多个xls文件加载到配置单元中?
- 18. 如何将多个文件(相同模式)加载到BigQuery中的表中?
- 19. 如何将多个osm文件加载到Nominatim中
- 20. 将多个DBF文件中的所有数据插入到多个表中
- 21. SSIS从多个表中加载数据
- 22. 如何使用SSIS将多个表中的数据插入到多个表中?
- 23. 如何将多个数据表导出到单个Excel文件中的多个工作表中
- 24. 将数据添加到多个文本文件中的DataTable列
- 25. 水壶将csv数据加载到多个表中
- 26. RPostgreSQL将多个CSV文件加载到Postgresql表中
- 27. MySQL:将多个文件加载到表中
- 28. 将多个文件加载到HIVE表中
- 29. 如何将数据从目录中的多个JSON文件加载并处理到R中的数据框中?
- 30. 如何将CSV数据加载到比csv文件列多的Oracle表中?
定义高效。你是否想要一个对你的开发者有效的进程,或者一个能够通过管道高效地将数据移动到数据库中的进程? –