要使用Logstash将PostgreSQL(PG)中的数据同步到Elasticsearch(ES),您可以遵循以下步骤:

  1. 安装和配置Logstash:
  • 下载并安装Logstash。您可以从Elasticsearch官方网站获取适用于您的操作系统的安装包。
  • 创建一个新的Logstash配置文件,例如"pg_to_es.conf"。
  • 打开配置文件并配置以下内容:
input {
  jdbc {
    jdbc_connection_string => "jdbc:postgresql://<PG_HOST>:<PG_PORT>/<PG_DATABASE>"
    jdbc_user => "<PG_USERNAME>"
    jdbc_password => "<PG_PASSWORD>"
    jdbc_driver_library => "<PATH_TO_PG_JDBC_DRIVER_JAR>"
    jdbc_driver_class => "org.postgresql.Driver"
    statement => "SELECT * FROM <PG_TABLE>"
    schedule => "* * * * *"
  }
}

output {
  elasticsearch {
    hosts => ["<ES_HOST>:<ES_PORT>"]
    index => "<ES_INDEX>"
    document_id => "%{id}"
  }
}
  • <PG_HOST>替换为您的PostgreSQL主机名或IP地址,<PG_PORT>替换为PostgreSQL端口号,<PG_DATABASE>替换为要同步数据的数据库名称,<PG_USERNAME><PG_PASSWORD>替换为您的PG凭据。
    <PATH_TO_PG_JDBC_DRIVER_JAR>替换为PostgreSQL JDBC驱动程序JAR文件的路径。
    <PG_TABLE>替换为要同步数据的表。
    <ES_HOST><ES_PORT>替换为Elasticsearch主机和端口号。
    <ES_INDEX>替换为要将数据写入的Elasticsearch索引名称。
    schedule选项设置了同步频率,上述示例中设置为每分钟同步一次。您可以根据需要进行调整。
  1. 启动Logstash:
  • 打开终端或命令提示符窗口。
  • 导航到Logstash安装目录。
  • 运行以下命令来启动Logstash并开始数据同步:
bin/logstash -f pg_to_es.conf

Logstash将从PostgreSQL中选择指定表中的数据,并将其写入Elasticsearch中的指定索引。您可以根据需要调整配置文件中的选项来满足您的要求。

请注意,为了使此过程正常工作,您需要确保具有适当的访问权限和网络连接,并且已安装正确版本的PostgreSQL JDBC驱动程序和Logstash。