SQL Server 数据批量导出处理

news2024/11/24 2:29:42

在实际项目环境中,有时会遇到需要将大量数据(这里所指百万级别以上的数据量)从一台服务器迁移到另外一台数据库服务器的情况。SQL Server有很多方式可以进行数据迁移:备份还原、导入/导出数据、生成脚本(包含数据)等,以下只针对“导入导出数据”方式来进行测试演示(其他方式自行查找官方文档说明)。

现有一个300W左右的数据库,需要从本地迁移到远程服务器上(从源数据库->目标数据库,使用导出数据方式)。

一、生成导出数据SSIS包。

首先,在SQL Server数据库对象管理器中,展开数据库->选择相应数据库 点击右键 -> 任务(T) -> 导出数据(X)...,如下图:

打开“SQL Server 导入和导出向导”页面,点击“下一步”选择 数据源(即要从中复制数据的来源),设置 源数据库的服务器名称、身份验证以及数据库,如下图:

“下一步”进入设置目标数据源(即要复制到的目标数据库),与上一步同理,设置目标数据源的 服务器名称、身份验证、数据库,如下图:

完成源和目标数据库的设置后,下一步,指定表复制和查询。如果将整个数据库所有表数据都迁移,选择第一项“复制一个或多个表或视图的数据”;只是迁移部分数据(一个或多个数据表),选择第二项“编写查询以指定要传输的数据”,编写SQL查询语句来对复制操作的源数据进行操纵或限制,如下图:

当前演示迁移数据测试是从本地到远程服务器,因网络问题直接连接远程服务器来导出数据,执行期间会出现网络断开的情况。

以下使用SQL分批导出方式进行处理,每次导出10W条数据。

选择“编写查询以指定要传输的数据”选项,下一步,输入要查询数据的SQL语句,如下图:

注:这里输入的SQL语句只支持查询select语句。

下一步,可以查看到 源与目标 的表或视图情况,上一步使用了SQL查询来导出数据,这里 源 位置所显示只是一个【查询】结果集,目标 位置可以选择目标数据库要接收数据迁移对应的数据表,如下图:

注:接收数据迁移的目标数据表结构必须与SQL查询返回的【查询】结果集结构必须一一对应。如不选择目标数据表,目标数据库中会自动创建一个名为“查询”的数据表来存储迁移数据。

进入下一步,可以“立即运行”(默认选中)SSIS包来执行导出数据操作,也可以先保存导出数据配置的SSIS包,在特定时候才去执行。目前测试受限于网络问题,使用“保存SSIS包”方式来处理。取消“立即运行”复选项,会自动选中“保存SSIS包”选项,选择“文件系统”方式来保存SSIS包(生成*.dtsx文件),方便迁移文件到远程服务器上执行导出,如下图:

保存 SSIS 包 两种方式:【SQL Server】 和 【文件系统】。

【SQL Server】 方式 => 保存在SQL Server系统内部,需要连接SQL Server Integration Server服务才能执行;

【文件系统】方式 => 将SSIS包保存到指定系统目录下。

下一步,给SSIS包指定一个名称以及文件存在的目录(默认是保存到系统盘->当前用户名所在文档目录下),如图:

下一步,点击“完成”按钮,系统会根据前面几步的设置生成相应的SSIS包,如图:

完成后,点击 【关闭】按钮,退出【导出数据】向导设置。

因使用分批导出数据(每次导出10W条数据),需要重复操作上述步骤,生成所有数据的SSIS包。

二、执行导出数据SSIS包

完成第一部分操作后,将SSIS包Copy到要目标数据库所在服务器,双击SSIS包(*.dtsx)自动运行 执行包实用工具,如下图:

 点击“执行”按钮,系统会根据SSIS包的设置来导出数据到目标数据库表里,自动显示 执行进度 情况,进度出现 完成占用时间 时,表示SSIS包已执行成功,如下图:

重复上一步骤,执行完余下的SSIS包。

到这里,已完成数据迁移处理。

三、总结

  1. 进行数据迁移可以使用SQL Server自带的导入\导出功能
  2. 导出数据可以指定SQL查询方式来处理
  3. 大量数据迁移网络通信受限的情况下可以使用分批导出方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/346716.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决console.log打印不出深度链表问题

解决console.log打印不出深度链表问题相信大家在写算法题的时候会遇到这样一个问题,写了一个链表的数据结构,在append几个数据之后,想console.log打印以下看看append正不正确,但是,consolo.log出来成这个样子&#xff…

【算法】差分

作者:指针不指南吗 专栏:算法篇 🐾合理规划时间与精力🐾 1.什么是差分? 与前缀和是反函数 原数组a a1 , a2 , a3 , a4 , a5 , a6 , a7 构造数组b a1b1; a2b1b2; a3b1b2b3; … aib1b2b3…bi; 构造一个b数组使得&#…

【Linux】信号量

🎇Linux: 博客主页:一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 看似不起波澜的日复一日,一定会在某一天让你看见坚持…

Java基础:面向对象进阶

1.static 1.static概念 工具类 2.static内存图 静态变量是随着类的加载而加载的,优于对象出现 3.static的注意事项 1.静态方法中,只能访问静态 : 因为非静态方法一般会传入调用方法的对象的地址this(一般是虚拟机自动调用,不需要手动传入, 如student.study()).但是由于静态方…

MapStruct使用指北

mapstruct官方文档链接,点击跳转 mapstruct是什么? MapStruct 是一个代码生成器,它基于约定优于配置方法极大地简化了 Java bean 类型之间映射的实现。 生成的映射代码使用简单的方法调用,因此速度快、类型安全且易于理解。 为…

介绍一款HCIA、HCIP、HCIE的刷题软件

华为认证考试分为三个等级,分别为工程师HCIA、高级工程师HCIP、专家HCIE,等级越高,考试难度越大。 本篇带大家详细了解华为数通题库刷题工具的详细操作步骤。 操作须知:本款刷题工具为一款刷题小程序,无需安装即可在线…

vue2源码之生命周期篇

vue2源码之生命周期篇vue2源码之生命周期篇生命周期流程图初始化阶段(new Vue)vue2源码之生命周期篇 生命周期流程图 从图中可以看到,Vue实例的生命周期大致可分为4个阶段: 初始化阶段:为Vue实例上初始化一些属性&am…

YOLOv8 目标检测 | 自定义数据集

本文介绍了使用用于目标检测的自定义数据训练 YOLOv8 模型。我正在使用来自 kaggle 的 yolo 格式的“Face Mask Dataset”,数据集链接如下:https://www.kaggle.com/datasets/maalialharbi/face-mask-dataset?resourcedownloadYOLOv8 是目前最先进的 YOL…

一【 mybatis的工作流程】

目录一.mybatis执行流程二.使用工具类简化项目(反射的体现)2.1 Sqlsession工厂对像2.2 工具类(可直接放在工具类使用)一.mybatis执行流程 1.1 读取主配置文件mybatis-config.xml,获得运行环境和数据库连接。 1.2 加载映…

35.网络结构与模型压缩、加速-2

35.1 Depthwise separable convolution Depthwise separable convolution是由depthwise conv和pointwise conv构成depthwise conv(DW)有效减少参数数量并提升运算速度 但是由于每个feature map只被一个卷积核卷积,因此经过DW输出的feature map不能只包含输入特征图的全部信息,…

【C/C++基础练习题】复习题三

C复习题知识点记录: 在定义结构体类型时,不可以为成员设置默认值。 在公用一个共用体变量时。系统为其分配存储空间的原则是按成员中占内存空间最大者分配 a ,La, "a", L"a" 字符 长字符 字符串 长字符串 布尔类型只有两个值 fal…

蓝桥杯C/C++VIP试题每日一练之2n皇后问题

💛作者主页:静Yu 🧡简介:CSDN全栈优质创作者、华为云享专家、阿里云社区博客专家,前端知识交流社区创建者 💛社区地址:前端知识交流社区 🧡博主的个人博客:静Yu的个人博客 🧡博主的个人笔记本:前端面试题 个人笔记本只记录前端领域的面试题目,项目总结,面试技…

C语言(文件,流,键盘输入和输出以及文件结尾)

目录 一.文件 二.流 三.输入和输出 二.文件结尾 一.检测方法 二.不同的操作系统,文件结束方式 3.使用scanf检测EOF 一.文件 文件(file)是存储器中存储信息的区域。通常,文件都保存在某种永久存储器中。文件对于计算机系统相当重要…

【C++之容器适配器】栈和队列模拟实现

目录前言一、栈(stack)1. 基本代码结构2. 简介3. 成员类型4. 成员函数1. 构造函数2. empty()3. size()4. top()5. push()6.pop()7. 综合测试实现的stack的所有函数接口二、队列(queue)1. 基本代码结构2. 队列的简介3. 成员类型4. 成员函数1. 构造函数2. empty()3. size()4. fro…

leaflet 上传KML文件,导出geojson文件(065)

第065个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中本地上传kml文件,利用解析此kml文件,在地图上显示图形。点击导出geojson,将下载为geojson文件。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代…

ChatGPT 怎么用最新详细教程-新手小白一看就会

ChatGPT 以其强大的信息整合和对话能力惊艳了全球,在自然语言处理上面表现出了惊人的能力。这么强大的工具我们都想体验一下,那么 ChatGPT 怎么用呢?本文将给你逐步详细介绍。使用 ChatGPT 主要有4步:注册 ChatGPT 账号通过短信接…

vue 开发环境 卸载node 版本 切换新的 node 版本 mac电脑

注意:操作的机器当前是mac,先卸载,再安装 1.查看现有 node 版本 node -v2.卸载现有 node 版本, 1.卸载从node官网下载pkg安装的node sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node…

地址空间 (Address Space)

文章目录:程序地址空间进程地址空间程序地址空间 什么是地址空间:地址空间是内存中可供程序或进程使用的有效地址的范围。也就是说,它是程序或进程可以访问的内存。内存可以是物理的、也可以是虚拟的,用于执行指令和存储数据。 …

nginx开启Gzip压缩,Vue性能优化之使用gzip压缩打包

一、前言不管是vue项目还是react项目在使用webpack打包之后都会生成一个动辄一两兆甚至更大的js文件,在某些情况下严重影响项目性能,打开页面的时候白屏时间会很长,本文将介绍如何使用gzip压缩打包,主要是nginx部署的配置&#xf…

hadoop环境新手安装教程

1、资源准备: (1)jdk安装包:我的是1.8.0_202 (2)hadoop安装包:我的是hadoop-3.3.1 注意这里不要下载成下面这个安装包了,我就一开始下载错了 错误示例: 2、主机网络相…