需要将一个 150GB 的 SQL Server 表导出到多个管道分隔的平面文件中
Posted
技术标签:
【中文标题】需要将一个 150GB 的 SQL Server 表导出到多个管道分隔的平面文件中【英文标题】:Need to export one SQL Server table of 150GB into multiple pipe delimited flat files 【发布时间】:2014-10-27 16:49:17 【问题描述】:需要将一个 150GB 大小的 SQL Server 表导出到多个管道分隔的平面文件中
表格只有2列,PKuniqueidentifier not null
和text null
一直在做 set rowcount BCP 查询,其中 uniqueidentifier 大于但表正在更新并且 PK 的顺序发生变化,没有 ID。
只是在寻找一种方法来快速转储这个大表,以便他们可以通过 SQL Loader 导入到 Oracle
不,出于各种原因,我们不想使用 SSIS
【问题讨论】:
大小是因为文本列,还是因为行数? 700,000 行,唯一 ID 是 GUID,文本是 XML 数据,SSIS 经验有限,SSIS 将括号放在 GUID 周围,而 BCP 没有,我可以导出到多个文件,其中 BCP 管道分隔做 GUID >比但 GUID 顺序发生变化,我需要相同的测试和生产脚本,恐怕我可能会错过或重复这样做的一行 【参考方案1】:鉴于行数相对易于管理,我建议首先将您的唯一标识符写入临时表并分配一个行号列,使用类似于以下的选择:
SELECT ROW_NUMBER() OVER(ORDER BY uniqueidentifier ASC) AS RowNumber, uniqueidentifier
FROM table
然后,您可以将您的临时表连接回您的实际数据,并为您的 bcp 批处理设置一系列行号。
【讨论】:
以上是关于需要将一个 150GB 的 SQL Server 表导出到多个管道分隔的平面文件中的主要内容,如果未能解决你的问题,请参考以下文章
将数据从 Power BI 导出到 SQL Server 突破了 150k 行的限制