Python-將json文件寫入ES資料庫

来源:https://www.cnblogs.com/poziiey/archive/2019/04/09/10677946.html
-Advertisement-
Play Games

1、安裝Elasticsearch資料庫 PS:在此之前需首先安裝Java SE環境 下載elasticsearch-6.5.2版本,進入/elasticsearch-6.5.2/bin目錄,雙擊執行elasticsearch.bat 打開瀏覽器輸入http://localhost:9200 顯示以 ...


1、安裝Elasticsearch資料庫

PS:在此之前需首先安裝Java SE環境

下載elasticsearch-6.5.2版本,進入/elasticsearch-6.5.2/bin目錄,雙擊執行elasticsearch.bat 打開瀏覽器輸入http://localhost:9200 顯示以下內容則說明安裝成功

 

安裝head插件,便於查看管理(還可以用kibana)

首先安裝Nodejs(下載地址https://nodejs.org/en/

再下載 elasticsearch-head-master包解壓到/elasticsearch-6.5.2/下(鏈接:https://pan.baidu.com/s/1oX9wKuAYrvY2ZRBT0cos6A 
提取碼:5ik4)

修改配置文件elasticsearch-6.5.2\config\elasticsearch.yml如下:

 

進入elasticsearch-head-master目錄下執行 npm install -g grunt-cli再執行npm install 安裝依賴

在elasticsearch-head-master目錄下找到Gruntfile.js文件修改伺服器監聽地址如下:

 

執行grunt server命令啟動head服務

 

訪問地址http://localhost:9100/即可訪問head管理頁面

2、將json文件寫入ES資料庫(py腳本如下)

# -*- coding: UTF-8 -*-

from itertools import islice
import json , sys
from elasticsearch import Elasticsearch , helpers
import threading

_index = 'indextest'   #修改為索引名
_type = 'string'     #修改為類型名
es_url = 'http://192.168.116.1:9200/'  #修改為elasticsearch伺服器

reload(sys)
sys.setdefaultencoding('utf-8')
es = Elasticsearch(es_url)
es.indices.create(index=_index, ignore=400)
chunk_len = 10
num = 0

def bulk_es(chunk_data):
    bulks=[]
    try:
        for i in xrange(chunk_len):
            bulks.append({
                    "_index": _index,
                    "_type": _type,
                    "_source": chunk_data[i]
                })
        helpers.bulk(es, bulks)
    except:
        pass

with open(sys.argv[1]) as f:
    while True:
        lines = list(islice(f, chunk_len))
        num =num +chunk_len
        sys.stdout.write('\r' + 'num:'+'%d' % num)
        sys.stdout.flush()
        bulk_es(lines)
        if not lines:
            print "\n"
            print "task has finished"
            break

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本系列筆記是在看完《neo4j權威指南》基礎上做的記錄。方便於自己後面查閱!! 1.圖庫介紹 圖資料庫(Graph Database)是基於圖論實現的一種新型NoSQL資料庫。它的數據存儲結構和數據的查詢方式都是以圖論為基礎的。圖論中圖的基本元素為節點和邊,在圖資料庫中對應的就是節點和關係。在圖數據 ...
  • 1.起因: 需要導入一個sql文件,發現死活導不進去.當執行到這一句時,就有問題.經過一番搜索,原來是我的資料庫版本(原先Mysql版本5.5)低了,而支持該語句的版本應該是至少要5.7.那我索性就去Mysql官網去下載了個最新版本的(8.0.15). 2.過程: 那麼問題來了:有兩個解決方案.1. ...
  • 關於視圖的用法以及作用。 作用一: 提高了重用性,就像一個函數。如果要頻繁獲取user的name和goods的name。就應該使用以下sql語言。示例: select a.name as username, b.name as goodsname from user as a, goods as b ...
  • 背景 從mysql.slow_log 獲取慢查詢日誌很慢,該表是csv表,沒有索引。 想添加索引來加速訪問,而csv引擎不能添加索引(csv引擎存儲是以逗號分割的文本來存儲的),只能改存儲引擎來添加索引了 mysql.slow_log表能改成myisam,不能改成innodb mysql.gener ...
  • 元欄位是ES為每個文檔配置的內置欄位, 主要用於ES內部相關操作. ES有多種類型的元欄位, 在使用和提高性能方面有很強大的地方, 這篇文章列舉常用元欄位的功能和使用方法, 包括_index、_type、_source、_routing等, 歡迎交流吖~ ...
  • 本人是一名學生,正在學習過程中,所以筆記涵蓋的還不是很廣,不過也算基本夠用,希望以後能更加完善。 登陸資料庫 mysql -h 主機名 -u 用戶名 -p > mysql -u root -p 列出資料庫 show databases; 選擇資料庫 use 資料庫名; 查看當前資料庫 select ...
  • MySQL基礎 py全棧 [TOC] 一、引言 1、什麼是數據? 描述事物的符號記錄,可以使數字,也可以是文字,圖形、圖像等,數據有多種形式,它們都可以經過數字化存入電腦,數據的含義成為數據的語義 2、什麼是資料庫(DB)? 存儲數據的倉庫,是長期存放電腦內、有組織、可共用的大量數據的集合,數據 ...
  • pga_aggregate_target與workarea_size_policy相互關係驗證 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...