postgresqlデータベースとTimescaleDB時系列ライブラリが結合します

postgresqlデータベースとTimescaleDB時系列ライブラリが結合します

****

postgres_fdwの使用法

**
CSDNの情報を読んだところ、postgresqlデータベースのテーブルをTimescaleDB時系列ライブラリのテーブルに結合する方法を尋ねられたことがわかりました。データをクエリするときにこの問題が発生しました。私の解決策。
私はpostgresqlデータベースのfdw関数ですpostgres_fdwプラグインを選択します

****

1つのインストールpostgres_fdwプラグイン

1.1postgres_fdwプラグインをインストールする
**

su – postgres
-bash-4.2$ psql
postgres=# \c hrmwv2  #(数据库名字)
Create extension "postgres_fdw";

データベースに接続するツール
ここに画像の説明を挿入
で1.2Viewインストール済みプラグインコマンドを実行することもできます

select * from pg_available_extensions;

****

2つは外​​部接続を作成します(TimescaleDBデータベース)

**
TimescaleDBデータベース情報に接続する必要があります:(架空)
ip:170.0.0.32ポート:5432
データベース名:hrmwユーザー名:postgres

2.1TimescaleDBで作成された外部リンク

--创建外部服务器
-- 括号里的三个参数,分别是timescaledb的ip、端口和数据库名称
CREATE SERVER timescale_db FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host '170.0.0.32', port '5432', dbname 'hrmw');
--创建用户映射
-- 括号里的两个参数,分别是timescaledb数据库的用户名、密码
create user mapping for postgres server timescale_db options(user 'postgres', password '数据库密码');

2.2外部リンクコマンドの表示

select * from pg_foreign_server;

結果:
ここに画像の説明を挿入

#一般fwd出问题就看看这里 是否配置正确
srvname:--你建的链接名
srvoptions:--你要链接的timescaledb时序库的信息

2.3 fdw外部リンクの
削除。ここで削除するには、段階的に削除するか、カスケード削除方法を直接使用する必要があります

drop  server timescale_db CASCADE;

カスケードする必要がない場合は、timescale_dbを直接削除できますが、削除することはできません。エラーは次のとおりです。

> ERROR:  cannot drop server timescale_db because other objects depend on it
DETAIL:  user mapping for postgres on server timescale_db depends on server timescale_db
HINT:  Use DROP ... CASCADE to drop the dependent objects too.

****

3つは外部テーブルを作成します

**
3.1外部テーブルを作成します(TimescaleDBに参加するために必要なテーブル:まったく同じです。スーパーテーブルにすることもできます)

CREATE FOREIGN TABLE tb_fdw_timescale_target 
 (
 collect_time timestamp(6),
  id varchar(36) ,
  value numeric(12,2) ,
  file_no int4 ,
  create_time timestamp(6)
 )
 server timescale_db --你创建的外部链接名字
 options (table_name '时序库的表名');

pgの対応するモードに入らない場合は、モードを指定する必要があります
。3.2外部テーブルの削除コマンド
通常のテーブルと同じ

DROP FOREIGN TABLE tb_fdw_timescale_target;

****

4つは外部テーブルをチェックします

**
ビジネスに移動して、作成した外部テーブルにデータがあるかどうかを開きます。データがある場合は、外部テーブルが正常に作成され、ビジネスデータベースに参加できることを意味します。

ここに画像の説明を挿入
このエラーは、接続するように構成したTimescaleDBデータベースが正しく構成されていないことです。変更した場合、現在わかっているのは、カスケードしてfdwを削除して再構築することしかできないということです。

もちろん、fdwの機能はこれらをはるかに超えており、Mysqlデータベースやoracleなどのデータベースにすることもできます。

おすすめ

転載: blog.csdn.net/yang_z_1/article/details/111751229