异步外表,外来数据包装器

时间:2017-06-07 06:07:48

标签: postgresql foreign-data-wrapper multicorn

我正在使用postgres中的外部数据包装器,使用多核和使用触发器在外部表中插入数据,但是我不希望postgres在触发后等待响应,只需触发器插入然后忘记。 怎么可能呢。

实际上我正在将它用于外国桌

CREATE FOREIGN TABLE media_es (
    id BIGINT,
    title TEXT,
    description TEXT,
    tags TEXT,
    query TEXT,
    score NUMERIC
  )
  SERVER multicorn_es
  OPTIONS (
      host 'elasticsearch',  
      port '9200',
      index 'test',
      type 'media',
      rowid_column 'id',
      query_column 'query',
      score_column 'score'
  );


CREATE TRIGGER es_insert_media
      AFTER INSERT
          ON media
      FOR EACH ROW
          EXECUTE PROCEDURE index_media();

CREATE OR REPLACE FUNCTION index_media()
      RETURNS trigger
      AS $def$
          BEGIN
          INSERT INTO media_es
                (
                  id,
                  title,
                  description,
                  tags
              )
          VALUES
              (
                  NEW.id,
                  NEW.title,
                  NEW.description,
                  NEW.tags
              )
          ;
          RETURN NEW;  
      END;
  $def$ LANGUAGE plpgsql;

1 个答案:

答案 0 :(得分:0)

postgres dblink扩展名允许通过dblink-send-query命令异步调用远程服务器。

不确定在建立多个连接方面它将如何在触发器内工作。在此请注意资源泄漏