热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Logstash同步Oracle数据到ElasticSearch

Logstash同步Oracle数据到ElasticSearch最近在项目上应用到了ElasticSearch和Logstash,在此主要记录了Logstash-input-jdbc同步Oracl

Logstash同步Oracle数据到ElasticSearch

最近在项目上应用到了ElasticSearch和Logstash,在此主要记录了Logstash-input-jdbc同步Oracle数据库到ElasticSearch的主要步骤,本文是对环境进行简单的配置,如需在实际环境中运行还需要进一步调整。

  • 首先要配置服务器环境
    • 安装Java
    • 安装ElasticSearch(我用的版本是2.4.0)
    • 安装head插件(用于在浏览器查看状态和数据,非必须)
    • 安装Logstash
    • 安装logstash-input-jdbc:在ElasticSearch安装目录下运行命令:bin/plugin install logstash-input-jdbc,成功会有提示。
    • 安装 elasticsearch-jdbc-2.3.4.1:运行命令:wget http://xbib.org/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/2.3.4.1/elasticsearch-jdbc-2.3.4.1-dist.zip
  • 配置同步数据
    • 将oracle安装目录下的ojdbc6.jar拷贝到elasticsearch-jdbc-2.3.4.1的lib目录下(此包是同步oracle数据库的驱动程序)
    • 配置同步文件:在logstash/bin目录下新建jdbc_oracle.conf文件,配置内容如下:
      • input{
      stdin{
       
      }
      jdbc{
      jdbc_connection_string => "jdbc:oracle:thin:@//192.168.1.16:1521/db"
      jdbc_user => "systemadmin"
      jdbc_password => "systemadmin"
      jdbc_driver_library => "/home/oracle/elasticsearch-jdbc-2.3.4.1/lib/ojdbc6.jar"
      jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
      record_last_run => "true"
      use_column_value => "false"
      tracking_column => "id"
      last_run_metadata_path => "/home/oracle/es/info"
      clean_run => "false"
       
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      statement_filepath =>"/home/oracle/es/jdbc_oracle.sql"
      schedule => "* * * * *"
      type => "tstype"
      }
      }
       
      output{
      elasticsearch{
      hosts => "localhost:9200"
      index => "tsuser"
      document_id => "%{id}"
      }
      }
    • 创建sql脚本对应配置脚本中的statement_filepath:jdbc_oracle.sql,脚本中写sql语句即可,本例中写的是:select * from users
    • 在logstash/bin下启动程序: ./logstash -f jdbc_oracle.conf
    • 使用head查看数据已经同步成功。
 
 
标签:  ElasticSearch,  logstash-input-jdbc

推荐阅读
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • Nacos 0.3 数据持久化详解与实践
    本文详细介绍了如何将 Nacos 0.3 的数据持久化到 MySQL 数据库,并提供了具体的步骤和注意事项。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 在将Web服务器和MySQL服务器分离的情况下,是否需要在Web服务器上安装MySQL?如果安装了MySQL,如何解决PHP连接MySQL服务器时出现的连接失败问题? ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 在实际开发中,连接池是最常使用的数据库管理技术之一。连接池通过创建和管理一组预初始化的数据库连接,使得这些连接可以被多个线程复用,从而显著提高应用程序的性能和资源利用率。本文将详细介绍如何从零开始构建一个自定义的 MySQL 连接池,并将其与 Spring Data 进行集成,以实现高效、可靠的数据库操作。 ... [详细]
  • vsftpd配置(虚拟用户、匿名用户登录)
    一、ftp服务搭建(一)概述1.ftp连接及传输模式(1)控制连接TCP21,用于发送FTP命令信息 ... [详细]
  • 本文详细介绍如何在忘记MySQL服务器密码的情况下进行密码重置,包括具体的步骤和注意事项。 ... [详细]
  • 周排行与月排行榜开发总结
    本文详细介绍了如何在PHP中实现周排行和月排行榜的开发,包括数据库设计、数据记录和查询方法。涉及的知识点包括MySQL的GROUP BY、WEEK和MONTH函数。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • RocketMQ在秒杀时的应用
    目录一、RocketMQ是什么二、broker和nameserver2.1Broker2.2NameServer三、MQ在秒杀场景下的应用3.1利用MQ进行异步操作3. ... [详细]
  • NOIP2000的单词接龙问题与常见的成语接龙游戏有异曲同工之妙。题目要求在给定的一组单词中,从指定的起始字母开始,构建最长的“单词链”。每个单词在链中最多可出现两次。本文将详细解析该题目的解法,并分享学习过程中的心得体会。 ... [详细]
author-avatar
焦作艾文斯
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有