`
月亮不懂夜的黑
  • 浏览: 155442 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

大数据的验证和插入数据库

阅读更多

最近在做项目的时候涉及到大数据的校验和插入。问题描述:通过Excel导入客户信息表至数据库中指定表。

刚看到该问题,自然而然就是想直接将Excel解析至内存。在内存中遍历对应的客户List集合,取出每一个Customer和数据库中的数据进行比对判断该用户是否存在,存在的话在重复值上计数,不存在的话插入数据库。但是当数据达到10w+的时候,那个速度都不能直视了。思考解决方案,首先采用的解决方案:校验放在外层,里层进行判断分多线程执行。每个线程5k数据。只有5-6 k数据时,还可以。但是当数据量达到10w+时,速度还是很慢。后来测试发现,单单只是用插入其实速度还是可以的,但前面加上验证之后,就严重拖垮了插入速度。但验证还必须使用,苦恼了好一阵。后来通过在网上查找相关资料发现,有一个比较好的解决方案:在数据库的对应校验字段建立唯一索引,在插入的时候让数据库自己进行校验。代码逻辑和数据库分摊压力。在使用save时,由于建立了唯一索引所以插入会出问题,报DataIntegrityViolationException的异常。在Try,catch中将其捕捉,进行重复值的累计。这时,之前想要的效果已经实现。

1
5
分享到:
评论
6 楼 cuishuangjia 2013-06-11  
你好,可以使用DBTOOLS来处理。
目前是测试阶段,只需要直接把机器码发给作者即可。(cuishuangjia@gmail.com)

ver 20130610

修正内容:

1.SQL历史信息

2.增加复制功能

3.支持DB2
DbTools工具下载:
http://cuishuangjia.iteye.com/
支持ORACLE,MYSQL,SQLSERVER,POSTGRE,DB2四种数据库相互转换功能

功能:
1。将数据库中的表结构和数据保存到EXCEL中。
2。将EXCEL中的数据,同步到数据库中。
3。当表结构发生变化时,数据不会丢失。
4。根据EXCEL中的表结构,生成建表语句SQL文。
5。多用户使用该软件时,可以随时记录某个用户对数据库的操作。
6。可以为进行压力测试,自动生成数据。
7。导出表结构,根据表结构和数据库中的表结构进行差分。
8。导出DB结构,和现有环境DB进行表结构差分
9。导出用户自定义表结构,根据表结构导入,导入数据前对EXCEL校验进行数据库验证和业务逻辑验证


亲,请将所有压缩文件全部下载后再解压。
作者邮件:cuishuangjia@gmail.com
5 楼 anlystar 2013-06-03  
月亮不懂夜的黑 写道
anlystar 写道
月亮不懂夜的黑 写道
xiongbin 写道
建议你使用redis

个人感觉这个其实没有太大必要。对于关系型数据库来讲处理这个还是可以的。听说淘宝还是使用的关系型数据库。再处理双11那么大数据流量的时候,并没感到有太大的压力。不知道我的看法对不对,欢迎指正。

像淘宝这样的互联网企业绝对不是单单靠某一种数据库就可以支撑起来的,他们会根据业务需求,不同模块或者业务使用不同的数据库以达到更高的性能体验

在iteye中应该有阿里的大牛,但是不知道能不能说说具体的查询以及存储实现技术。科普科普。

月亮不懂夜的黑 写道
anlystar 写道
月亮不懂夜的黑 写道
xiongbin 写道
建议你使用redis

个人感觉这个其实没有太大必要。对于关系型数据库来讲处理这个还是可以的。听说淘宝还是使用的关系型数据库。再处理双11那么大数据流量的时候,并没感到有太大的压力。不知道我的看法对不对,欢迎指正。

像淘宝这样的互联网企业绝对不是单单靠某一种数据库就可以支撑起来的,他们会根据业务需求,不同模块或者业务使用不同的数据库以达到更高的性能体验

在iteye中应该有阿里的大牛,但是不知道能不能说说具体的查询以及存储实现技术。科普科普。

infoq上有几个淘宝的架构视频讲解
4 楼 月亮不懂夜的黑 2013-06-03  
anlystar 写道
月亮不懂夜的黑 写道
xiongbin 写道
建议你使用redis

个人感觉这个其实没有太大必要。对于关系型数据库来讲处理这个还是可以的。听说淘宝还是使用的关系型数据库。再处理双11那么大数据流量的时候,并没感到有太大的压力。不知道我的看法对不对,欢迎指正。

像淘宝这样的互联网企业绝对不是单单靠某一种数据库就可以支撑起来的,他们会根据业务需求,不同模块或者业务使用不同的数据库以达到更高的性能体验

在iteye中应该有阿里的大牛,但是不知道能不能说说具体的查询以及存储实现技术。科普科普。
3 楼 anlystar 2013-06-03  
月亮不懂夜的黑 写道
xiongbin 写道
建议你使用redis

个人感觉这个其实没有太大必要。对于关系型数据库来讲处理这个还是可以的。听说淘宝还是使用的关系型数据库。再处理双11那么大数据流量的时候,并没感到有太大的压力。不知道我的看法对不对,欢迎指正。

像淘宝这样的互联网企业绝对不是单单靠某一种数据库就可以支撑起来的,他们会根据业务需求,不同模块或者业务使用不同的数据库以达到更高的性能体验
2 楼 月亮不懂夜的黑 2013-06-03  
xiongbin 写道
建议你使用redis

个人感觉这个其实没有太大必要。对于关系型数据库来讲处理这个还是可以的。听说淘宝还是使用的关系型数据库。再处理双11那么大数据流量的时候,并没感到有太大的压力。不知道我的看法对不对,欢迎指正。
1 楼 xiongbin 2013-06-03  
建议你使用redis

相关推荐

    2022年云南工商学院数据科学与大数据技术专业《数据库系统原理》科目期末试卷A(有答案).docx

    SQL Server 提供 Windows NT 身份验证和 SQL Server 身份验证两种模式。 **选择题** 28. A. 3NF 属于第二范式,但反之不成立。 29. C. 应该根据教师的职称设置不同奖金,用 CASE 语句实现。 30. A. 关系系统必须...

    大数据Excel通过POI导入数据库通用设计方案

    【大数据Excel通过POI导入数据库通用设计方案】 大数据处理中,Excel作为常见的数据交换格式,其导入到数据库的需求频繁出现。为了提高效率并避免重复工作,本方案旨在提供一种通用的Excel导入策略,利用Apache POI...

    excel批量导入数据库

    首先,Excel文件(通常是.XLSX或.XLS格式)中的数据被解析,然后根据预定义的映射规则转换成数据库可识别的格式,最后这些数据被插入到合适的数据库表中。这一过程通常需要编程知识,如SQL和Python等,但也有许多...

    spring Batch实现数据库大数据量读写

    通过批处理操作,JdbcBatchItemWriter 可以高效地执行大量的数据库插入、更新操作,提高性能。 ### 5. 批处理作业配置 在 Spring Batch 中,作业(Job)由一个或多个步骤(Step)组成。每个步骤通常包含读取、处理...

    大数据测试方法和工具梳理.pdf

    大数据测试是针对海量数据集合进行的一种验证和评估过程,它超越了传统软件测试的范畴,更注重数据处理的效率、准确性和整体性能。大数据测试的主要目标是确保大数据应用程序能够有效地处理、存储和分析大量多样化...

    星环大数据平台_InceptorSQL使用方法.pdf

    InceptorSQL通过支持标准SQL语句和提供对Hive SQL的兼容性来执行操作,例如创建数据库、表,以及执行数据插入、查询和更新等。文档提到了如何使用SQL语句来创建和管理ORC表和ORC事务表,后者支持事务处理,而普通ORC...

    php图片存入数据库

    然而,直接存储二进制大数据(如图片)在数据库中可能会影响性能,因为数据库设计主要优化于处理结构化数据,而不是大量非结构化的二进制内容。一种常见的解决方案是将图片以文件形式存储在服务器的文件系统中,然后...

    数据库的课设.zip

    在课设中,你需要编写SQL语句来创建数据库表,插入样本数据,并执行各种查询以验证设计的正确性。 此外,数据库性能优化也是重要的一环。这涉及到索引的合理使用、查询优化、存储过程的编写以及数据库架构的调整。...

    基于hadoop的分布式数据库测试方法研究.pdf

    性能测试包括简单大数据插入、修改和查询场景,以及高并发数据处理性能测试场景,如多表大数据插入、查询和关联排序。这些测试场景考察了在不同并发用户数和数据量级下,数据库处理大数据的效率和稳定性。 在功能...

    数据库水印嵌入提取数据库水印数据库水印

    数据库水印技术是一种重要的数据保护策略,特别是在大数据和云计算时代,数据安全与版权保护变得尤为重要。数据库水印的嵌入和提取是这一技术的核心组成部分。 首先,我们要理解什么是数据库水印。数据库水印就像是...

    数据库基础

    10. **分布式数据库**:随着大数据和云计算的发展,分布式数据库成为了解决海量数据存储和处理的解决方案。这种数据库将数据分布在多个节点上,通过协调机制实现数据的一致性和可用性。 掌握数据库基础对于理解和...

    txt导入至数据库.zip

    6. **执行命令**:调用`ExecuteNonQuery()`方法执行SQL命令,将数据插入数据库。 7. **关闭连接**:最后,记得关闭数据库连接以释放资源。 在实际项目中,可能还需要考虑错误处理、数据验证、事务处理等复杂情况。...

    数据库系统工程师考试大纲

    这个大纲涵盖了数据库系统的核心概念、技术、工具以及最佳实践,旨在评估和验证考生在数据库领域的专业技能和知识水平。下面将详细阐述大纲中可能涉及的主要知识点。 1. **数据库基础**: - 数据库定义与类型:...

    数据库原理与应用-期末考试复习题-(1)(1).docx

    数据库安全性的措施包括身份验证、访问控制、数据加密和备份恢复等。 6. SQL语言: SQL语言是一种标准的数据库语言,用于定义、操作和查询数据库。SQL语言包括数据定义语言(DDL)、数据操作语言(DML)和数据控制...

    海量数据的MySQL数据集

    最后,对于测试目的,这样一个大型数据集可以帮助开发者验证在高负载条件下的应用程序性能,模拟真实世界的并发访问情况,以评估系统在处理大数据时的稳定性和效率。 综上所述,“海量数据的MySQL数据集”是一个...

    电力大数据关键技术与应用研究V11精简版092395.ppt

    - 在计算任务和查询任务中,大数据平台展现出优于传统数据库的处理速度和效率。 5. 应用场景: - 采集覆盖情况明细:监测电力设施的覆盖范围和运行状态。 - 采集数据质量检查:确保数据准确性,提高数据质量。 ...

    数据库系统 基础教程答案(英文)

    最后,第十二章可能涉及数据库安全性和隐私保护,包括访问控制、权限管理、审计和加密机制,以及在大数据和云环境下的安全挑战。 这个“数据库系统基础教程答案”压缩包对学习者来说是一份宝贵的资源,它能帮助验证...

    数据库基础知识大全 电子版

    - **NoSQL数据库**(2010年代至今):针对传统关系型数据库在大数据和高并发场景下的不足,NoSQL数据库应运而生,它们通常不使用固定的表模式,可以提供更高的可扩展性和性能。 #### 二、数据库的基本操作 数据库...

    数据库系统概论ppt

    3. SQL语言:结构化查询语言(SQL)是用于管理关系数据库的标准语言,包括数据查询、更新、插入和删除操作,以及数据库模式定义和数据控制等功能。 4. 数据库设计:数据库设计包括需求分析、概念设计、逻辑设计和...

Global site tag (gtag.js) - Google Analytics