pgspider zombodb+opendistro 集成

Posted rongfengliang-荣锋亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pgspider zombodb+opendistro 集成相关的知识,希望对你有一定的参考价值。

zombodb 默认对于es的连接是没有密码的,很不安全,可选的方式,基于nginx+basci auth
使用es 的X-Pack,使用amazon的opendistro 也是一个很不错的方案,以下是一个简单测试,同时
会有关于使用basic auth 模式的连接配置

注意,测试使用的pg zombodb docker 镜像使用zombodb 4.0 构建,会有es 兼容的问题,所以最好选择好opendistro 版本

环境准备

  • docker-compose 文件

    注意es 禁用了tls 的认证,使用了单机模式

 
version: "3"
services: 
  pg-zombodb:
    image: dalongrong/pgspider:zombodb-plv8
    ports:
    - "5432:5432"
    environment: 
    - "POSTGRES_PASSWORD=dalong"
  elasticsearch:
    image: amazon/opendistro-for-elasticsearch:0.10.0
    ports: 
    - "9200:9200"
    environment:
      - "discovery.type=single-node"
      - "http.host=0.0.0.0"
      - "opendistro_security.ssl.http.enabled=false"
      - "cluster.name=odfe-cluster"
      - "transport.host=0.0.0.0"
      - "network.host=0.0.0.0"
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"

使用

  • 启动服务
docker-compose up -d
  • 启用扩展
CREATE EXTENSION zombodb;
// 创建表
CREATE TABLE products (
  id SERIAL8 NOT NULL PRIMARY KEY,
  name text NOT NULL,
  keywords varchar(64)[],
  short_summary text,
  long_description zdb.fulltext, 
  price bigint,
  inventory_count integer,
  discontinued boolean default false,
  availability_date date
);
// 添加索引,同时使用basic auth 模式连接es
CREATE INDEX idxproducts 
                   ON products 
                USING zombodb ((products.*))
                 WITH (url=\'http://admin:admin@elasticsearch:9200/\');
 
 
  • 添加测试数据
INSERT INTO "public"."products"("id","name","keywords","short_summary","long_description","price","inventory_count","discontinued","availability_date")
VALUES
(1,E\'Magical Widget\',E\'{magical,widget,round}\',E\'A widget that is quite magical\',E\'Magical Widgets come from the land of Magicville and are capable of things you can\\\'t imagine\',9900,42,FALSE,E\'2015-08-31\'),
(2,E\'Baseball\',E\'{baseball,sports,round}\',E\'It\\\'s a baseball\',E\'Throw it at a person with a big wooden stick and hope they don\\\'t hit it\',1249,2,FALSE,E\'2015-08-21\'),
(3,E\'Telephone\',E\'{communication,primitive,"alexander graham bell"}\',E\'A device to enable long-distance communications\',E\'Use this to call your friends and family and be annoyed by telemarketers. Long-distance charges may apply\',1899,200,FALSE,E\'2015-08-11\'),
(4,E\'Box\',E\'{wooden,box,"negative space",square}\',E\'rong\',E\'A wooden container that will eventually rot away. Put stuff it in (but not a cat).\',17000,0,TRUE,E\'2015-07-01\');
  • 查询
select * from products WHERE products ==> \'rong\';

效果

 

 

说明

amazon的opendistro 是一个很不错的es 替代,功能强大,安全性以及周边也都很不错,加上zombodb真的很不错

参考资料

https://opendistro.github.io/for-elasticsearch-docs/docs/security-configuration/tls/ 
https://opendistro.github.io/for-elasticsearch-docs/version-history/ 
https://github.com/zombodb/zombodb/releases 
https://hub.docker.com/repository/docker/dalongrong/pgspider 
https://www.cnblogs.com/rongfengliang/category/1433947.html 
https://www.cnblogs.com/rongfengliang/category/1641930.html 
https://hub.docker.com/repository/docker/dalongrong/pgspider 
https://github.com/rongfengliang/zombodb_opendistro-for-elasticsearch

以上是关于pgspider zombodb+opendistro 集成的主要内容,如果未能解决你的问题,请参考以下文章

带有 postgres-xl 的 zombodb:“zombodb.so:未定义符号:session_auth_is_superuser”

zombodb 低级api 操作

zombodb 几点说明

zombodb 关于索引的几个问题

pgspider基于pg 的高性能数据可视化sql 集群引擎

pgspider 其他扩展的集成