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などのデータベースにすることもできます。