Tag: bulkinsert

在SQL Server中批量插入正确引用的CSV文件

我试图导入正确引用的CSV文件,这意味着数据只有在包含逗号时才被引用,例如: 41, Terminator, Black 42, "Monsters, Inc.", Blue 我观察到,第一行正确导入,但第二行错误以暗示引用逗号的方式被视为字段分隔符。 我见过这样的build议 从SQL CSV批量导入 改变字段终止符 FIELDTERMINATOR = ' “”' 但是,我的CSV文件只引用需要它的字段,所以我不相信这个build议会起作用。 SQL Server的BULK IMPORT语句是否可以导入正确引用的CSV文件? 怎么样?

使用Django的ORM加速批量插入?

我计划使用django的ORM将大约750个文件(每个〜250MB)的十亿条logging上传到一个数据库。 目前每个文件需要20分钟的时间来处理,我想知道是否有任何方法来加速这个过程。 我采取了以下措施: 每使用@ transaction.commit_manually并提交一次,每5000条logging 设置DEBUG = False,这样django 就不会在内存中累积所有的sql命令 循环遍历单个文件中的logging完全包含在单个函数中(最小化堆栈更改) 从敲击查询数据库(使用已经在db中的对象的本地散列而不是使用get_or_create ) 在save()中设置force_insert = True,希望能够保存django的一些逻辑 显式设置id希望能够保存django的一些逻辑 通用代码最小化和优化 我还能做些什么来加快速度? 这是我的一些想法: 使用某种Python编译器或更快的版本(Psyco?) 重写ORM并直接使用SQL 使用一些可能更好的第三方代码( 1,2 ) 请求django社区创build一个bulk_insert函数 任何有关这些项目或任何其他想法的指针将受到欢迎:)

BULK插入与身份(自动增量)列

我试图从CSV文件中添加数据库中的批量数据。 员工表具有自动递增的列ID (PK)。 CREATE TABLE [dbo].[Employee]( [id] [int] IDENTITY(1,1) NOT NULL, [Name] [varchar](50) NULL, [Address] [varchar](50) NULL ) ON [PRIMARY] 我正在使用这个查询: BULK INSERT Employee FROM 'path\tempFile.csv ' WITH (FIRSTROW = 2,KEEPIDENTITY,FIELDTERMINATOR = ',' , ROWTERMINATOR = '\n'); .CSV文件 – Name,Address name1,addr test 1 name2,addr test 2 但是会导致这个错误信息: 第2行第1列(id)的批量加载数据转换错误(types不匹配或指定代码页的字符无效)。

我如何插入多个行到MySQL表中并返回新的ID?

通常我可以在MySQL表中插入一行,并返回last_insert_id 。 现在,我想批量插入表中的许多行并取回一个ID数组。 有谁知道我怎么能做到这一点? 还有一些类似的问题,但不完全相同。 我不想插入新的ID到任何临时表; 我只想取回ID数组。 我可以从批量插入检索lastInsertId吗? Mysql多行插入select语句与last_insert_id()

在Android设备上批量插入

我想在我的下一次升级时将大约700条logging批量插入到Android数据库中。 什么是最有效的方法来做到这一点? 从各个职位,我知道,如果我使用Insert语句,我应该包装在一个事务。 还有一个关于使用自己的数据库的post ,但我需要这些数据进入我的应用程序的标准Android数据库。 请注意,这只会在每个设备上执行一次。 一些想法: 将一堆SQL语句放在一个文件中,一次读一行,然后执行SQL。 把数据放在一个CSV文件,或JSON,或YAML,或XML,或其他。 一次读一行,并执行db.insert() 。 找出如何进行导入,并完成整个文件的单个导入。 制作一个包含所有logging的sqlite数据库,将其复制到Android设备上,并以某种方式合并这两个数据库。 [编辑]把所有的SQL语句作为一个大string放在res / values中的单个文件中。 然后一次读一行,然后执行SQL。 什么是最好的方法? 还有其他的方式来加载数据? 3和4甚至可能吗?

如何在PostgreSQL中暂时禁用触发器?

我是批量加载数据,并且可以在事后比在逐行的基础上更便宜地重新计算所有的触发器修改。 我怎样才能暂时禁用PostgreSQL中的所有触发器?

将CSV文件导入到SQL Server中

我正在寻找帮助使用BULK INSERT将.csv文件导入到SQL Server中,并且我有几个基本问​​题。 问题: CSV文件数据之间可能有(逗号)(例如:说明),那么如何使导入处理这些数据? 如果客户端从Excel创buildCSV,那么带有逗号的数据将被包含在"" (双引号)内[如下例所示],那么导入如何处理呢? 我们如何跟踪一些行是否有错误的数据,导入跳过? (导入是否跳过不可导入的行) 以下是带标题的示例CSV: Name,Class,Subject,ExamDate,Mark,Description Prabhat,4,Math,2/10/2013,25,Test data for prabhat. Murari,5,Science,2/11/2013,24,"Test data for his's test, where we can test 2nd ROW, Test." sanjay,4,Science,,25,Test Only. 和SQL语句导入: BULK INSERT SchoolsTemp FROM 'C:\CSVData\Schools.csv' WITH ( FIRSTROW = 2, FIELDTERMINATOR = ',', –CSV field delimiter ROWTERMINATOR = '\n', –Use to shift the control to […]

mongodb:插入如果不存在

我每天都收到一份文件(更新)。 我想要做的是插入每个不存在的项目。 我也想跟踪我第一次插入他们,以及我最后一次看到他们的更新。 我不想有重复的文件。 我不想删除以前保存的文档,但不在我的更新中。 95%(估计)的logging是每天不变的。 我正在使用Python驱动程序(pymongo)。 我现在做的是(伪代码): for each document in update: existing_document = collection.find_one(document) if not existing_document: document['insertion_date'] = now else: document = existing_document document['last_update_date'] = now my_collection.save(document) 我的问题是速度很慢(不到10万条logging需要40分钟,而且我有数百万条logging)。 我很确定这样做有内置的东西,但更新()的文件是mmmhhh ….有点简洁….( http://www.mongodb.org/display/DOCS/Updating ) 有人可以build议如何更快地做到这一点?

批量插入到使用.NET的Oracle

使用.NET批量插入Oracle的最快方法是什么? 我需要使用.NET将大约160Klogging传输到Oracle。 目前,我正在使用插入语句并执行它160K次,大约需要25分钟才能完成。 源数据存储在DataTable中,作为从另一个数据库(MySQL)查询的结果, 有没有更好的方法来做到这一点? 编辑 :我目前正在使用System.Data.OracleClient,但愿意接受使用其他提供商(ODP.NET,DevArt等..)的解决scheme。

SQL Server批量插入带有不一致引号的CSV文件

是否有可能扩大插入(SQL Server)一个CSV文件,其中的字段是只有OCCASSIONALLY引号包围? 具体而言,引号仅包含那些包含“,”的字段。 换句话说,我有这样的数据(第一行包含标题): id, company, rep, employees 729216,INGRAM MICRO INC.,"Stuart, Becky",523 729235,"GREAT PLAINS ENERGY, INC.","Nelson, Beena",114 721177,GEORGE WESTON BAKERIES INC,"Hogan, Meg",253 由于引号不一致,我不能使用“”,“”作为分隔符,而且我也不知道如何创build一个格式文件来解决这个问题。 我尝试使用','作为分隔符,并将其加载到一个临时表中,其中每列是一个varchar,然后使用一些kludgy处理去除引号,但这也不起作用,因为包含','被分成多列。 不幸的是,我没有能力预先处理CSV文件。 这是无望的吗? 非常感谢您的任何build议。 顺便说一下,我看到这个post从csv的SQL批量导入 ,但在这种情况下,每个字段一直包裹在引号。 那么,在这种情况下,他可以用','作为分隔符,然后去掉引号。