• Elasticsearch JDBC river 之 ms sql 篇


    還沒接觸elasticsearch之前大家免不了都會用數據庫, 像我這種微軟狗當好幾年的, Microsoft Sql Server之唯一方案.

    現在時代不同了都邁向no-sql, 那數據移轉就是首要的工作, elasticsearch知道這事情的重要性, 所以有了river 這種技術來輔助我們移轉.

    此外, river-jdbc有2種方式可以把sql數據同步過來, 我這篇介紹的是river, 其實還有個效能更好的feeder的方案(下次介紹)

    我使用的elasticsearch版本是1.2.1

    首先river是以plugin的形式成為elasticsearch的功能, 所以我們得來安裝一下elasticsearch-river-jdbc, 請到elasticsearch文件夾下的bin文件夾進行以下命令

    plugin --install jdbc --url http://xbib.org/repository/org/xbib/elasticsearch/plugin/elasticsearch-river-jdbc/1.2.1.1/elasticsearch-river-jdbc-1.2.1.1-plugin.zip

    安裝好之後, 這次要移轉的是MS SQL請到這裡下載, 並解壓找到sqljdbc4.jar檔案, 然後拷貝到elasticsearch文件夾下的lib文件夾, 這裡面已經有很多jar的文件了(jar的大本營).

    現在可以把你的elasticsearch給啟動了, 執行binelasticsearch.bat

    如果你的Windows無法執行curl,建議用Git bash,這時代大家都用Git吧,執行以下命令

    curl -XPUT 'localhost:9200/_river/njmssql/_meta' -d '
    {
      "type": "jdbc",
      "jdbc": {
        "url": "jdbc:sqlserver://192.168.92.226:1433;databaseName=log8k2605(140310)",
        "user": "",
        "password": "",
        "sql": "SELECT PID as _id, SiteID as _type, year(StartTime) as _index, Length, StartTime, EndTime FROM T_Record_Info",
        "maxbulkactions" : 1000,
        "schedule" : "*/20 * * * * ?"
      }
    }'

    njmssql這裡可以自行命名

    在url那邊要注意到端口的開啟,還有MS SQL是否能用TCP/IP的方式訪問

    如果法順利啟動, 那關閉elasticsearch, 再次執行binelasticsearch.bat

    這裡我用了個技巧, 直接在sql語法中指定了_index, _type, _id這些重要的字段, 因為我的data flow是隨時間增加數據的, 所以我不可能讓全部數據寫進同一個index下.

    maxbulkactions是bulk一次寫入的筆數

    schedule那個字段是屬於排程控制的(我是設定每20秒執行一次), 可參考這裡,還有這裡.

    没有配置schedule就只会运行一次而已

    接下來你可以看看你的index文件數量是不是增加了

    http://localhost:9200/_count

    如果要移除剛剛創建的njmssqlriver請在執行

    curl -XDELETE 'localhost:9200/_river/njmssql'

    注意:如果想更新配置只能删了再新增, 想停止就执行删除

  • 相关阅读:
    快速幂取模
    程序人生系列之新闻发布系统 0105
    JavaWeb之博客系统(四)
    [转]树状数组
    题目:免费午餐
    题目:删数问题
    题目:三元组
    题目:分子团
    题目:[汪老师结婚]婚礼上的袭击
    题目:[SBN号码]
  • 原文地址:https://www.cnblogs.com/jHenry/p/3758990.html
Copyright © 2020-2023  润新知