千家信息网

elasticsearch怎么实现导入导出CSV

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这篇文章主要介绍"elasticsearch怎么实现导入导出CSV",在日常操作中,相信很多人在elasticsearch怎么实现导入导出CSV问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
千家信息网最后更新 2024年09月22日elasticsearch怎么实现导入导出CSV

这篇文章主要介绍"elasticsearch怎么实现导入导出CSV",在日常操作中,相信很多人在elasticsearch怎么实现导入导出CSV问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"elasticsearch怎么实现导入导出CSV"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

坦白说,这是第一个python程序,虽然看起来写的很烂,但是你放心,我试过了无毒,而且运行结果,既然是正确的!

导出CSV

import csvimport sysimport loggingimport datetime from elasticsearch import Elasticsearchreload(sys)  sys.setdefaultencoding('gbk')logging.basicConfig()es = Elasticsearch()def exportCSV(indexName):    count = 0    finish=False    csvfile = file(indexName+'.csv','wb')    writer = csv.writer(csvfile)    starttime = datetime.datetime.now()    searchRes = es.search(index=indexName,size=100,body={"query": {"match_all": {}}},search_type="scan",scroll="60s")    while True:        scrollRes=es.scroll(scroll_id=searchRes["_scroll_id"],scroll="60s",ignore=[400, 404])        res_list = scrollRes["hits"]["hits"]        data=[]                if not len(res_list) or finish:            break        if count==0:            writer.writerow(tuple(res_list[0]["_source"].keys()))        for item in res_list:            #print tuple(item["_source"].values())            data.append(tuple(item["_source"].values()))            count+=1            if count>=100000:                finish=True                break        writer.writerows(data)    csvfile.close()    endtime = datetime.datetime.now()    print "export size = "+str(count)    print "export cost = "+str(endtime - starttime)    if __name__=="__main__":   exportCSV("test")

导入CSV

# -*- coding:utf-8 -*- import csvimport sysimport osimport loggingimport datetime from elasticsearch import Elasticsearchfrom elasticsearch import helpersreload(sys)  sys.setdefaultencoding('gbk')logging.basicConfig()es = Elasticsearch()def importCSV(indexName,typeName,fileName):    if not os.path.exists(fileName):        print "file not found"        return    actions=[]    if not es.indices.exists(index=indexName,allow_no_indices=True):        #print "not found index"        es.indices.create(index=indexName,body={},ignore=400)    for item in csv.DictReader(open(fileName, 'rb')):          actions.append({"_index":indexName,"_type":typeName,"_source":encoding(item)})    res = helpers.bulk(es,actions,chunk_size=100)    es.indices.flush(index=[indexName])    return len(actions)def encoding(item):    for i in item:        item[i]=str(item[i]).encode('utf-8')    return item    if __name__=="__main__":    starttime = datetime.datetime.now()    result=importCSV("test","base","test.csv")    print "import size = "+str(result)    endtime = datetime.datetime.now()    print "import cost = "+str(endtime - starttime)

到此,关于"elasticsearch怎么实现导入导出CSV"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

学习 更多 帮助 实用 接下来 文章 方法 理论 知识 程序 篇文章 结果 网站 资料 跟着 这是 问题 utf-8 好用 实践 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 客户电话采集软件开发 速达客户端为何不安装数据库 河南服务器硬盘代理 运维服务器安全 延庆区专业软件开发价目表 我的世界服务器被破坏怎么复原 数据库dql操作实验 软件开发 转销售 计算机实用网络技术论文 软件开发模型 之迭代 小程序获取数据库数据而不能显示 中软国际网络安全入职考试 淘云科技二蛋怎么互联网 在数据库系统中DLL表示什么 772啊数据库的确 华为软件开发云招聘 易语言服务器断开 开展网络安全 自查报告 网络技术专业网络构建简称网构 广东好的软件开发创新服务 网络安全法规定收到举报的部门 数据库维护计划怎么自动删除 速达客户端为何不安装数据库 查看数据库虚拟路径 物业公司网络安全工作 网络安全监督举报电话 分析网购网络安全现状 行业软件开发技术 正版软件及网络安全等的实施方案 网络安全会议汇报
0