win環境下把MySql中的資料匯入到Elasticsearch(二)
環境問題參考我上文:
環境問題已經好了,接下來,我們講實戰。
該壓縮包幫助mysql與其他平臺連線。看到很多資源都要積分,不能選0分,所以選1分了
在bin目錄下建立jdbc.config
根據需求改連線,賬號,密碼,名字,埠等等。
input { stdin { } jdbc { # mysql jdbc connection string to our backup databse jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/zhangjiang?characterEncoding=UTF-8&useSSL=false" # the user we wish to excute our statement as jdbc_user => "root" jdbc_password => "111111" # the path to our downloaded jdbc driver jdbc_driver_library => "D:/logstash-6.3.1/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar" # the name of the driver class for mysql jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_paging_enabled => "true" jdbc_page_size => "50000" jdbc_default_timezone => "UTC" statement_filepath => "D:/logstash-6.3.1/logstash-6.3.1/bin/jdbc.sql" schedule => "* * * * *" type => "patent" } } filter { json { source => "message" remove_field => ["message"] } } output { elasticsearch { hosts => "localhost:9200" index => "patent" document_id => "%{id}" } stdout { codec => json_lines } }
建立jdbc.sql(這裡根據自己需求改啦)
select Patent_ID as id, Patent_Num as pnum, Patent_Name as pname, Patent_Link as link, Patent_Applicant as applicant, Patent_Summary as summary, Patent_Date as pdate, Patent_ClassNum as classnum, Patent_Update as pupdate, Patent_Status as pstatus from patentinfor
在bin中輸入 logstash -f jdbc.conf
瘋狂匯入啦~~~
這裡也記錄下幾個報錯的問題給大家參考:
1.
D:\logstash-6.3.1\logstash-6.3.1\bin>logstash -f jdbc.conf
Sending Logstash's logs to D:/logstash-6.3.1/logstash-6.3.1/logs which is now configured via log4j2.properties
[2018-07-23T09:40:23,744][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
2018-07-23 09:40:23,822 LogStash::Runner ERROR Unable to move file D:\logstash-6.3.1\logstash-6.3.1\logs\logstash-plain.log to D:\logstash-6.3.1\logstash-6.3.1\logs\logstash-plain-2018-07-20-1.log: java.nio.file.FileSystemException D:\logstash-6.3.1\logstash-6.3.1\logs\logstash-plain.log -> D:\logstash-6.3.1\logstash-6.3.1\logs\logstash-plain-2018-07-20-1.log: 另一個程式正在使用此檔案,程序無法訪問。
已經有埠使用了。檢視下是不是開著別的cmd在呼叫logstash,關閉就是了
2.
D:\logstash-6.3.1\logstash-6.3.1\bin>logstash -f jdbc.conf
Sending Logstash's logs to D:/logstash-6.3.1/logstash-6.3.1/logs which is now configured via log4j2.properties
[2018-07-23T09:44:41,964][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2018-07-23T09:44:42,995][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"6.3.1"}
[2018-07-23T09:44:46,715][ERROR][logstash.outputs.elasticsearch] Unknown setting 'host' for elasticsearch
[2018-07-23T09:44:46,715][ERROR][logstash.outputs.elasticsearch] Unknown setting 'port' for elasticsearch
[2018-07-23T09:44:46,715][ERROR][logstash.outputs.elasticsearch] Unknown setting 'protocol' for elasticsearch
[2018-07-23T09:44:46,715][ERROR][logstash.outputs.elasticsearch] Unknown setting 'cluster' for elasticsearch
[2018-07-23T09:44:46,746][ERROR][logstash.agent ] Failed to execute action {:action=>LogStash::PipelineAction::Create/pipeline_id:main, :exception=>"LogStash::ConfigurationError", :message=>"Something is wrong with your configuration.", :backtrace=>["D:/logstash-6.3.1/logstash-6.3.1/logstash-core/lib/logstash/config/mixin.rb:89:in `config_init'", "D:/logstash-6.3.1/logstash-6.3.1/logstash-core/lib/logstash/outputs/base.rb:62:in `initialize'", "org/logstash/config/ir/compiler/OutputStrategyExt.java:202:in `initialize'", "org/logstash/config/ir/compiler/OutputDelegatorExt.java:68:in `initialize'", "D:/logstash-6.3.1/logstash-6.3.1/logstash-core/lib/logstash/plugins/plugin_factory.rb:93:in `plugin'", "D:/logstash-6.3.1/logstash-6.3.1/logstash-core/lib/logstash/pipeline.rb:110:in `plugin'", "(eval):39:in `<eval>'", "org/jruby/RubyKernel.java:994:in `eval'", "D:/logstash-6.3.1/logstash-6.3.1/logstash-core/lib/logstash/pipeline.rb:82:in `initialize'", "D:/logstash-6.3.1/logstash-6.3.1/logstash-core/lib/logstash/pipeline.rb:167:in `initialize'", "D:/logstash-6.3.1/logstash-6.3.1/logstash-core/lib/logstash/pipeline_action/create.rb:40:in `execute'", "D:/logstash-6.3.1/logstash-6.3.1/logstash-core/lib/logstash/agent.rb:305:in `block in converge_state'"]}
[2018-07-23T09:44:47,215][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
這裡是參考了別的網頁,本來在下文中還寫了port,protocol等內容,刪除就是了,同時注意是hosts而不是host;記得檢視自己的sql檔案,如果sql檔案出錯,同樣會導致匯入失敗,結果是:可以手動在cmd寫內容進es,但是mysql的內容並沒有錄入es
output {
elasticsearch {
hosts => "localhost:9200"
index => "patent"
document_id => "%{id}"
}
stdout {
codec => json_lines
}
最後附上成功執行後視覺化軟體kibana圖:
一週後的後續:當我加入中文分詞工具以後,突然發現一個問題,對映是elasticsearch預設自己建立的 ,一旦建立沒有辦法修改,所以建議大家插入資料前先建立mapping,把分詞工具加進去,具體分詞工具我這裡採用elasticsearch中的IK Analysis,後續會考慮其他分詞工具,比較效果。這裡附上我分詞工具IK Analysis的安裝和使用後續:
相關推薦
win環境下把MySql中的資料匯入到Elasticsearch(二)
環境問題參考我上文: 環境問題已經好了,接下來,我們講實戰。 該壓縮包幫助mysql與其他平臺連線。看到很多資源都要積分,不能選0分,所以選1分了 在bin目錄下建立jdbc.config 根據需求改連線,賬號,密碼,名字,埠等等。 input {
MySQL中的關鍵字用法(二)
MySQL中的關鍵字的用法(二) limit:偏移量和數量 注意limit和offset的區別,下面有寫到offset,注意區分; 在我們使用查詢語句的時候,經常要返回前幾條或者中間某幾行資料,這個時候怎麼辦呢?不用擔心,mysql已經為我們提供了這樣一個功
mysql中條件限制語句(二)like 全匹配 全模糊 distinct limit
5.limit語句: 語法:select 欄位名 from 標明 limit 起始行,查詢幾行; mysql> select * from 4a limit 0,3; +--------+------+--------+------+--------+------+-
將MySQL中資料匯入到MongoDB中
第一步: 將user表從MySQL中匯出,右鍵,點選匯出嚮導,選擇格式為xlsx。 第二步: 匯出完成後,雙擊開啟user.xlsx,將user.xlsx另存為csv格式的檔案。(切記不可直接修改後綴名,會導致亂碼,無法匯入到MongoDB中,血的教訓) 第三步:
MySQL數據庫管理(二)單機環境下MySQL Cluster的安裝
img 任務管理器 value 機器 tail -a bsp ron 技術分享 上文《MySQL數據庫管理(一)MySQL Cluster集群簡單介紹》對MySQL Cluster集群做了簡要介紹。本文將教大家一步步搭建單機環境下的MySQL數據庫集群。 一、單機
大資料之scala(二) --- 對映,元組,簡單類,內部類,物件Object,Idea中安裝scala外掛,trait特質[介面],包和包的匯入
一、對映<Map> ----------------------------------------------------- 1.建立一個不可變的對映Map<k,v> ==> Map(k -> v) scala> val map
SpringMVC 實現POI讀取Excle檔案中資料匯入資料庫(上傳)、匯出資料庫中資料到Excle檔案中(下載)
package com.shiliu.game.utils; import java.io.OutputStream; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import
微服務架構下的資料一致性保證(二):可靠事件模式
第一篇分享中講到實現可靠事件模式的關鍵在於:可靠事件投遞和避免事件重複消費,其中避免事件重複消費需要微服務滿足冪等性。那麼又該如何實現可靠事件投遞?又該如何保證服務滿足冪等性? 轉載本文需註明出處:EAII企業架構創新研究院,違者必究。如需加入微信群參與微課堂、架構設計與討論直播請
倒置線性表中資料的順序(c++)
倒置線性表中資料的順序(c++) 給LList類實現新增一個成員函式,倒置線性表中資料的順序,且演算法的執行時間為O(n) template<typename E> void LList<E>::reverse(){ Link<E> * p,*
R資料匯入匯出(一): read.table()和read.csv()的區別
之前也參考過一些資料,雖然是這麼簡單的兩個buildin,還是仔細對比了一下,我有兩張txt,都是從cube中匯出的,就意味著每一列的列數是不一樣的。R語言官方文件中有這樣一句話不知道大家注意到了沒有: 意思是說,R語言對於匯入的格式要求非常嚴格,可以說是不靈活的;簡而言之就是更希望的是格式在外部編輯好
淺談mysql中各種表空間(tablespaces)的概念
mysql中,會涉及到各種表空間的概念,雖然,很多方面這些概念和Oracle有相似性,但也有很多不同的地方,初學者很容易被這些概念弄的暈頭轉向,從而,混淆這些概念的區別和理解,下面,就簡要介紹和說明一下這些表空間的概念。 1.系統表空間(System Tablespace) innodb系統表空間包
MySQL中的關鍵字用法(一)
MySQL中關鍵字的用法(一) Insert:增加 insert into * values() insert into user values(‘11’,‘諸葛亮’,‘1011’); 不多解釋,向表中新增一條語句,不清楚的去看MySQL的簡單的增刪改查
實時抽取mysql的資料工具----canal(一)
1、準備: github:https://github.com/alibaba/canal 裡面有包括canal的文件,server端 client端的 例子 原始碼包等等。 2、canal概述: canal是應阿里巴巴存在杭州和美國的雙機房部署,存在跨機房同步的業務需求而提出的。
mysql中的轉換函式(講義)
--轉換函式: --to_number(數值型別的字元):將字元轉換為數值 --to_char(數值或者是日期):將數值或者日期轉換為字元 --to_date(日期格式的字元):將字元轉換為日期 ----------------數值和字元的互轉----
mysql常用資料結構介紹(1)
mem_root mysql層通過mem_root管理記憶體分配,防止頻繁分配和釋放小記憶體。 mem_root的定義見include/my_alloc.h: typedef struct st_mem_root { USED_MEM *free;
Fedora9下Seismic Unix地震資料處理系統(SU)安裝
一、WindowsXP安裝Fedora9 1、網上下載Fedora-9-i386-DVD:下載其DVD版本,以便在硬碟中安裝。 http://download.chinaunix.net/downlo
大資料分析中的挖掘技術(二)
我們在上一篇文章中給大家介紹了大資料分析技術、資料探勘的意義、資料探勘的技術以及方法還有機器學習的內容。一般來說,大資料分析中的挖掘技術都是比較重要的,在這篇文章中我們給大家介紹一下資料探勘的主要過程以及資料探勘的重點內容。 我們不只在一篇文章中提到過,資料探勘的內容是非常重要的,
大資料在生活中有什麼應用(二)
在上一篇文章中我們給大家介紹了大資料在生活中的應用,具體的內容就是金融交易、大資料對城市的改變、大資料不斷改變人們的生活以及大資料提高醫療和研發。我們在這篇文章中繼續為大家介紹更多的內容。 首先,大資料可以改善安全和執法。大資料現在已經廣泛應用到安全執法的過程當中。現在美國安全域性
Mysql 修改資料存放位置(windows)
導言mysql 可用於安裝在linux系統,以及windows系統。預設情況下mysql 存放位置在安裝時已經內建。位置檢視本例中mysql 使用版本為 5.7,使用的工具navicat 版本為10.1.7 ,檢視儲存位置的操作為:1,在navicat 開啟資料庫,新建查詢2
qt中資料儲存方法(介面)的思路應用1(thinkvd開發日誌)
<qt中資料儲存方法(介面)的思路>個人最早釋出在qtcn bbs http://www.qtcn.org/bbs/read.php?tid=32483中,可能由於比較理論化而讓人感覺其實際應用意義,今後其有相關的應用會逐步寫出來。 關於載入視訊檔案後