大容量导入或导出的数据格式 -- 本机格式

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介:

应用场景



当使用不包含任何扩展/双字节字符集 (DBCS) 字符的数据文件在多个 SQL Server 实例之间大容量传输数据时,建议使用本机格式。

 

本机格式保留数据库的本机数据类型。 


本机格式适用于 SQL Server 表之间的高速数据传输。

 

如果使用格式化文件,则源表和目标表不必相同。

 

数据传输分为两个步骤:

1. 将源表中的数据大容量导出到数据文件中

2. 将数据文件中的数据大容量导入到目标表中

 

在相同的表之间使用本机格式避免了在各数据类型与字符格式之间进行不必要的转换,从而节省了时间和空间。

 

但是,若要获得最佳的传输速率,应执行几个有关数据格式的检查。

 

为了防止加载的数据出现问题,请参阅以下限制列表。

 

限制



若要成功导入本机格式的数据,请确保:

 

1. 数据文件是本机格式的文件。

 

2. 目标表必须与数据文件(含有正确的列数、数据类型、长度及 NULL 状态等)兼容,或者您必须使用格式化文件将每一个字段映射到其相应列。

注意

如果从与目标表不匹配的文件中导入数据,那么导入操作可能会成功,但插入到目标表中的数据值很可能是错误的。 这是由于文件中的数据是通过使用目标表的格式来解释的。 因此,任何不匹配都会导致插入错误值。 但是,这样的不匹配决不会导致数据库中出现逻辑或物理不一致。


 

成功的导入操作不会损坏目标表。

 

bcp 如何处理本机格式的数据



本节论述了 bcp 实用工具如何导出和导入本机格式数据的特殊注意事项。

 

1. 非字符数据

bcp 实用工具使用 SQL Server 内部二进制数据格式将表中的非字符数据写入数据文件中。

 

2. char 数据或 varchar 数据

在每个 char 字段或 varchar 字段的开头,bcp 都添加前缀长度。

重要提示

当使用本机模式时,默认情况下,bcp 实用工具先将 SQL Server 中的字符转换为 OEM 字符,然后将这些字符复制到数据文件中。 bcp 实用工具先将数据文件中的字符转换为 ANSI 字符,然后将这些字符大容量导入到 SQL Server 表中。 在执行这些转换过程中,可能丢失扩展字符数据。 对于扩展字符,请使用 Unicode 本机格式或指定代码页。


 

3. sql_variant 数据

如果 sql_variant 数据以 SQLVARIANT 存储在本机格式数据文件中,则数据会保留其所有特征。 记录每个数据值的数据类型的元数据与数据值一起存储。 此元数据用于在目标 sql_variant 列中重新创建具有相同数据类型的数据值。

 

如果目标列的数据类型不是 sql_variant,则每个数据值将按照隐式数据转换的一般规则转换为目标列的数据类型。 如果在数据转换过程中出现错误,则回滚当前批。 在 sql_variant 列之间传输的任何 char 值和 varchar 值都可能存在代码页转换问题。

 

本机格式的命令选项



您可以使用 bcp、BULK INSERT 或 INSERT ... SELECT * FROM OPENROWSET(BULK...) 将本机格式数据导入到表中。 对于 bcp 命令或 BULK INSERT 语句,您可以在命令行中指定数据格式。 对于 INSERT ... SELECT * FROM OPENROWSET(BULK...) 语句,您必须在格式化文件中指定数据格式。

 

下列命令行选项支持本机格式:

命令

选项

说明

bcp

-n

使 bcp 实用工具使用本机数据类型的数据。

BULK INSERT

DATAFILETYPE ='native'

使用本机数据类型或宽本机数据类型的数据。 注意,如果格式化文件指定了数据类型,则不需要 DATAFILETYPE。


若要将本机 (-n) 数据加载到与早期版本的 SQL Server 客户端相兼容的格式,请使用 -V 开关。

 

参考:

https://msdn.microsoft.com/zh-cn/library/ms191232.aspx

















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


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
后端返回base64格式数据转excel格式文件并下载
后端返回base64格式数据转excel格式文件并下载
258 0
|
JavaScript 前端开发
kettle从sftp下载多个文件并进行转换后输出
kettle从sftp下载多个文件并进行转换后输出
|
7月前
|
自然语言处理 数据可视化 数据挖掘
带你飞上云端,轻松解析数据——gopup库详细解析--包含安装库教程
本文介绍了Python库gopup,它是一个用于轻松爬取互联网数据的工具,简化了数据收集和处理的过程。文章提供了gopup的安装教程,特别强调了安装时需注意setuptools版本,并给出了PyCharm和命令行两种安装方法。gopup库能获取包括指数、百度和谷歌数据等多种类型的数据。文中还展示了如何使用gopup获取微博指数和豆瓣新片榜数据,并通过代码示例呈现数据和图表。此外,文章提醒了使用时的风险和部分接口的失效情况,并提供了库文档链接以供深入学习。gopup库适用于数据可视化和数据分析,是进行文本挖掘和自然语言处理项目的理想工具。
274 0
带你飞上云端,轻松解析数据——gopup库详细解析--包含安装库教程
|
存储 Python
【可定制、转换时间戳】解析nc文件,并保存为csv文件
【可定制、转换时间戳】解析nc文件,并保存为csv文件
522 4
|
前端开发 JavaScript 容器
vue导出excel表格-后端返回blob流文件,前端接收并导出(处理导出以后打开文件损坏问题)
vue导出excel表格-后端返回blob流文件,前端接收并导出(处理导出以后打开文件损坏问题)
908 0
PB数据窗口导出到EXCEL函数
PB数据窗口导出到EXCEL函数
204 0
|
存储 Python
文件和数据格式化
文件和数据格式化
160 0
文件和数据格式化
|
数据库
【视频】配置信息管理 的 使用方法(一):数据库文档(Excel)的格式说明
  这个视屏是对数据库文档(Excel)的格式的说明。必须按照这样的格式填写才能被配置信息管理程序所识别。        感谢 svnhost.cn 提供空间,因为园子里只有30M的空间,远远不够用,呵呵。
719 0

热门文章

最新文章