数据仓库之抽取数据:通过bcp命令行导入数据

原文:数据仓库之抽取数据:通过bcp命令行导入数据

在做数据仓库时,最重要的就是ETL的开发,而在ETL开发中的第一步,就是要从原OLTP系统中抽取数据到过渡区中,再对这个过渡区中的数据进行转换,最后把经过处理的干净的数据加载到数据仓库中。

目标数据库是sql server,通过bcp命令行导入数据。bcp方式相对于其他方式来说,速度更快,是做了优化的。

以下为bcp命令行常用的参数,注意大小写:

-c  以char作为存储类型

-w  和-c类似,只有当使用unicode字符集拷贝数据时使用nchar作为存储类型

-T  用可信连接

-S  sql server服务器名称

in  导入数据

out 导出数据

queryout 查询导出数据

-U  用户名

-P  密码

-F  从哪一行开始导入

-L  直到哪一行结束

-f  格式文件

-x  与-f一起使用,用来生产xml格式的格式文件

-t  指定字段分隔符是"\t"

-r  指定行分隔符是"\n"

1、开启即席查询


  1. --修改高级参数
  2. sp_configure ‘show advanced options‘,1
  3. go
  4. --允许即席分布式查询
  5. sp_configure ‘Ad Hoc Distributed Queries‘,1
  6. go
  7. --如果配置的值不在合理范围(在最小值最大值范围内),那么可以强制覆盖
  8. reconfigure with override  
  9. go

2、导出格式化文件

格式化文件用来指定表的格式,也就是几个字段,数据类型是什么,后面导入、导出数据会用到。

通过导出格式化选项,可以直接导出,不需要我们自己写。

用可信连接登陆:


  1. bcp wc.dbo.calendar format nul -f c:\calendar.fmt
  2. -c -T -S pc0227gry\mssqlserver2008

通过用户名、密码登陆:


  1. bcp wc.dbo.calendar format nul -f c:\calendar.fmt
  2. -c -Usa -Pxyz -S pc0227gry\mssqlserver2008

3、导出数据文件,可以把远程服务器的数据导出保存为本地的文件


  1. bcp wc.dbo.calendar out c:\calendar.txt -f c:\calendar.fmt
  2. -c -T -S PC0227GRY\MSSQLSERVER2008

4、导入数据


  1. bcp wc.dbo.calendar in c:\calendar.txt -c -f c:\calendar.fmt
  2. -Usa -Pxyz -S pc0227gry\mssqlserver2008


不想长大啊

发布了416 篇原创文章 · 获赞 135 · 访问量 94万+

他的留言板
关注

原文地址:https://www.cnblogs.com/lonelyxmas/p/12019932.html

时间: 2024-10-12 15:38:14

数据仓库之抽取数据:通过bcp命令行导入数据的相关文章

BCP是SQL Server中负责导入导出数据的一个命令行工具

BCP是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据.BCP可以将数据库的表或视图直接导出,也能通过SELECT FROM语句对表或视图进行过滤后导出.在导入导出数据时,可以使用默认值或是使用一个格式文件将文件中的数据导入到数据库或将数据库中的数据导出到文件中. 下面将详细讨论如何利用BCP导入导出数据. 1. BCP的主要参数介绍 BCP共有四个动作可以选择. (1) 导入. 这个动作使用in命令完成,后面

memcached命令行memcached数据导入和导出PHP链接memcached memcach

memcached命令行 memcached数据导入和导出 PHP链接memcached 先安装php的memcache扩展cd /usr/local/src/wget ?http://www.apelearn.com/bbs/data/attachment/forum/memcache-2.2.3.tgz tar zxf memcache-2.2.3.tgz?cd memcache-2.2.3/usr/local/php-fpm/bin/phpize./configure --with-php

MySQL命令行导入sql文件时出现乱码解决方案

Note: sql> source F:weibo.sql(执行相关sql文件) sql> select * from sina into outfile "/weibo.txt"(导出相应数据到C:的weibo.txt) 1. mysql 5.0后其客户端仅支持gbk,故可在sql> set names gbk; 例如: set names gbk; /* Navicat MySQL Data Transfer Source Server : localhost_3

mysql用命令行导入sql文件

前面说到了用navicat工具导入导出数据库,今天给同事导入数据库的时候,发现到不进去,好多错误,情急之下,用命令行导入的 1.打开mysql的服务.cmd-->net start mysql 关闭服务:cmd-->net stop mysql 2.找到你的mysql安装包下的bin目录 "E:\MySQL\MySQL Server 5.0\bin\" 3.在cmd下运行 cd E:\MySQL\MySQL Server 5.0\bin   回车 4.运行  mysql -

命令行导入SQL文件

摘要:把数据库导出为XX.sql格式的数据库文件,导入到另外一个数据库中的时候,总是无法全部导入.及时用mysql的命令界面导入依然是无法全部导入.老师告诉我:在命令行中运行的效率和成功率是最快和最高的.所以查了一下如何用命令行导入SQL文件,方法很简单! 1.首先运行cmd(注意此处要用管理员身份运行)或者“开始菜单”-->附件-->命令提示符(右键)-->以管理员身份运行 2.进入mysql的bin目录 3.运行:mysql -u root -proot test <I:\re

MySQL命令行导入导出数据库

MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录,如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin(或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名,如我输入的命令行:mysqldump -u root -p news > news.sql (输入后会让你输入进入MySQL的密码)(如

mysql命令行导入和导出数据

MySQL中导出CSV格式数据的SQL语句样本如下: Sql代码   select * from test_info into outfile '/tmp/test.csv' fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n'; [sql] view plain copy print? select * from test_info into outf

MySQL命令行导入导出数据

参考:http://www.cnblogs.com/xcxc/archive/2013/01/30/2882840.html 这篇文章写得非常好,又简洁,而且深入浅出,排版也非常好看,不会像网上的只是在页面堆知识. MySQL 用命令行导出, 导入数据 1.导出数据: 1.1.导出单个数据库 mysqldump -hhost -uroot -p test>d:\test.sql    (如果没有错误,会提示你输入密码) 格式:mysqldump -h远程ip -u用户名 -p 数据库名 > 保

memcached命令行以及数据导出和导入、 php连接memcached以及储到sessions

memcached命令行 进入到memcached中,如果没有可以yum安装telnet 127.0.0.1 11211Trying 127.0.0.1...Connected to 127.0.0.1.Escape character is '^]'.set key2 0 30 2set:是用来储存数据的key:这里面key2是key的名字,因为memcached是属于key- valux,存数据要有一个key,也要有一个valux.2:这里面的2是你要存到数值是两位的,或者是两个字节.比如我