使用bcp进行大数据量导出导入

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介:

 SQL Server的导出导入方式有:在SQL Server中提供了导入导出的界面操作。

-- 还没有解决的问题 
-- 1:使用BCP命令时如果导出的字段为空想替换为其它描述(比如替换成NULL)如何办?
-- 2:使用 case when 时就会出现1023字节的问题,那有没其它办法解决呢?
-- 3:使用BCP命令导出大数据量时出现错误:查询提示超过了最大目录缓冲区 1023 字节(2164 字节输入)。
-- 备注
-- 1:已经使用了Coalesce代替case when,但是还是超出字符数了。
-- 2:对以网上说的放到Temp数据库中、中间表,这些?但是数据表几十G了,还能这样?

-- 整个表导出(out)
bcp 数据库名.dbo.表名 out c:\currency.txt  - S"数据库实例"  - U"用户"  - P"密码"  -

-- 使用SQL语句导出(queryout)
bcp " select   *   from  数据库名.dbo.表名" queryout c:\currency.txt  - S 数据库实例  - U"用户"  - P"密码"  - c

-- 设置字段分隔符和行分隔符(-c -t"," -r"\n"),不想输入字段类型等请配合-c一起使用
bcp " select   *   from  数据库名.dbo.表名" queryout c:\currency.txt  - S 数据库实例  - U"用户"  - P"密码"  - - t","  - r"\n"

-- 指定每批导入数据的行数、指定服务器发出或接收的每个网络数据包的字节数(-k -b5000 -a65535)
bcp " select   *   from  数据库名.dbo.表名" queryout c:\currency.txt  - S 数据库实例  - U"用户"  - P"密码"  - - t","  - r"\n"  - - b5000  - a65535

-- 在查询分析器上执行(EXEC master..xp_cmdshell)
EXEC  master..xp_cmdshell  ' bcp "select * from 数据库名.dbo.表名" queryout c:\currency.txt -S 数据库实例 -U"用户" -P"密码" -c '

-- 把SQL语句生成一个.sql文件,然后调用
-- 注:路径的文件夹名称中间不能有空格
exec  master..xp_cmdshell  ' osql -S 数据库实例 -U 用户 -P 密码 -i     C:\cmdshellTest.sql '   

-- 将数据导入到currency表中
EXEC  master..xp_cmdshell  ' bcp 数据库名.dbo.表名 in c:\currency.txt -c -T '
-- 导入数据也同样可以使用-F和-L选项来选择导入数据的记录行。
EXEC  master..xp_cmdshell  ' bcp 数据库名.dbo.表名 in c:\currency.txt -c -F 10 -L 13 -T '

 

在使用命令xp_cmdshell的时候需要设置权限:

/* MSsql2005 如何启用xp_cmdshell
默认情况下,sql server2005安装完后,xp_cmdshell是禁用的(可能是安全考虑),如果要使用它,可按以下步骤
*/
--  允许配置高级选项
EXEC  sp_configure  ' show advanced options ' 1
GO
--  重新配置
RECONFIGURE
GO
--  启用xp_cmdshell
EXEC  sp_configure  ' xp_cmdshell ' 1
GO
-- 重新配置
RECONFIGURE
GO

-- 执行想要的xp_cmdshell语句
Exec  xp_cmdshell  ' query user '
GO

-- 用完后,要记得将xp_cmdshell禁用(出于安全考虑)
--
 允许配置高级选项
EXEC  sp_configure  ' show advanced options ' 1
GO
--  重新配置
RECONFIGURE
GO
--  禁用xp_cmdshell
EXEC  sp_configure  ' xp_cmdshell ' 0
GO
-- 重新配置
RECONFIGURE
GO

或者使用图形界面:

 

 

参考文献

bcp 实用工具

在大容量导入期 间保留空值或使用默认值

使用格式化文件跳过表列

sql server的BCP导入导出










本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/478783,如需转载请自行联系原作者

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
21天前
|
关系型数据库 MySQL 大数据
教你使用Python玩转MySQL数据库,大数据导入不再是难题!
教你使用Python玩转MySQL数据库,大数据导入不再是难题!
|
27天前
|
SQL 存储 分布式计算
"SQLTask携手Tunnel:打造高效海量数据导出解决方案,轻松应对大数据挑战
【8月更文挑战第22天】SQLTask搭配Tunnel实现高效海量数据导出。SQLTask擅长执行复杂查询,但直接导出受限(约1万条)。Tunnel专注数据传输,无大小限制。二者结合,先用SQLTask获取数据,再通过Tunnel高效导出至目标位置(如CSV、OSS等),适用于大数据场景,需配置节点及连接,示例代码展示全过程,满足企业级数据处理需求。
47 2
|
4月前
|
SQL 分布式计算 大数据
MaxCompute产品使用合集之怎样可以将大数据计算MaxCompute表的数据可以导出为本地文件
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
4月前
|
存储 分布式计算 大数据
MaxCompute产品使用合集之MaxCompute是否 支持导出所有表结构和表列表
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
2月前
|
数据采集 自然语言处理 大数据
​「Python大数据」词频数据渲染词云图导出HTML
使用Python,本文展示数据聚类和办公自动化,焦点在于通过jieba分词处理VOC数据,构建词云图并以HTML保存。`wordCloud.py`脚本中,借助pyecharts生成词云,如图所示,关键词如"Python"、"词云"等。示例代码创建了词云图实例,添加词频数据,并输出到"wordCloud.html"。
54 1
​「Python大数据」词频数据渲染词云图导出HTML
|
3月前
|
分布式计算 DataWorks API
DataWorks操作报错合集之在将ODPS空间设置成保护模式后,导出到OSS的任务出现了权限问题,该怎么解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
157 1
|
3月前
|
分布式计算 运维 DataWorks
MaxCompute产品使用问题之数据如何导出到本地部署的CK
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
3月前
|
分布式计算 DataWorks Oracle
MaxCompute产品使用问题之dataworks怎么导出所有maxcompute表的表结构
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
3月前
|
SQL 关系型数据库 MySQL
基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)
基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化)
|
3月前
|
分布式计算 DataWorks 大数据
MaxCompute操作报错合集之pyODPS导入python包的时候报错,该怎么办
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。

热门文章

最新文章