Solr 集羣配置 DataImportHandler 導入

修改zk集羣配置

如同前文
部署Zookeeper 加 solr-cloud 羣集一
部署Zookeeper 加 solr-cloud 羣集二
zk 統一管理集羣 colelction 下所有 core 的方法,修改 一個solrhome 下的 conf 中的 下面三個文件
這裏寫圖片描述

solrconfig.xml

1 添加 mysql-inputlib 引用
<lib dir="/opt/app/ctpsp/" regex="solr-dataimporthandler-.*\.jar" />

2 添加 input 包的配置文件配置

 <!-- leon add mysql-input
    with
  -->

  <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
          <lst name="defaults">
             <str name="config">data-config.xml</str>
          </lst>
     </requestHandler>

3 這裏jar包如下:
這裏寫圖片描述

下載地址:Data Import Request Handler

data-config.xml

這裏配置的是數據庫連接和sql全量更新、增量更新的操作

<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://Ip/databaseName" user="數據庫用戶" password="數據庫密碼" batchSize="-1" />
    <document name="documentName">
        <entity name="entityName,這個是在solrAdmin後臺可以選的"
                pk="RECORD_NUMBER"
                query="全量更新語句"
                deltaImportQuery="增量更新語句 '${dataimporter.RECORD_NUMBER}'">
            <field column="id" name="id"></field>
            <!-- 這裏注意 在solr羣集裏面id 是必須的  -->
            <field column="RECORD_NUMBER" name="RECORD_NUMBER"></field>
            ...
            ...
            ...
            <field column="COLLECT_COUNT" name="COLLECT_COUNT"></field>

        </entity>
    </document>
</dataConfig>

這裏注意 在solr羣集導入數據裏面 ,filed id 是必須的,不然會報下面的錯誤, Document is missing mandatory uniqueKey field: id ,這和單機版的 Solr 有些不同。

這裏 sql 增量和全量語句中用到的 filed ,在 managed-schema 中需要配置,下面會寫,增量中用到的 '${dataimporter.RECORD_NUMBER}' 是固定寫法,用來存儲變量用於增量更新。

managed-schema

將 上面用到的 filed 在這裏配置


 <field name="RECORD_NUMBER" type="string" indexed="true" stored="true" required="true" multiValued="false"/>
 ...
 ...
 ...
 <field name="SOLR_COMMENT" type="text_ik" indexed="true" stored="false" required="false" multiValued="false"/>

提交 dataimporthandler-confzk 集羣

這裏就不再贅述提交 conf 過程了,可以參考前面集羣配置提交配置文件的過程。同樣是只需要在一個zk節點提交 之前配置好的 solrhomeconf 就可以了,目的是創建一個帶 dataimporthandlerconf配置文件,在 collection 導入數據時候,可以用。

導入數據

創建使用剛剛創建的 配置文件來創建一個 Collection
這裏寫圖片描述

開始導入
這裏寫圖片描述

查詢導入結果
這裏寫圖片描述

可以去其他的shard 和 replica 看,應該都是有 數據了,我就不截圖了,集羣 dataimport 完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章