ホームページ >Java >&#&チュートリアル >ローカル開発、リモート データ: Java API から Fly.io PostgreSQL にアクセスする
リモート PostgreSQL データベースをローカル Java アプリケーションに接続する: 実践ガイド
ローカル開発中に外部データベースのデータにアクセスするのは一般的な課題です。 この記事では、PostgreSQL 外部データ ラッパー (FDW) と Fly Proxy を使用して、ローカル Java API (SpringBoot を使用) を Fly.io でホストされているリモート PostgreSQL データベースに接続するソリューションについて詳しく説明します。
問題: ギャップを埋める
このプロジェクトでは、Fly.io でホストされるアプリケーション上にある PostgreSQL テーブルからデータをフェッチする必要がありました。ネットワーク制限のため、ローカル開発環境からの直接アクセスがブロックされました。 これには 2 つの重要なハードルがありました:
解決策: Fly Proxy と PostgreSQL FDW
このソリューションは、Fly Proxy を利用して安全なトンネルを作成し、PostgreSQL FDW を利用してリモート データベースをローカル データ ソースとして扱います。
PostgreSQL FDW について
PostgreSQL の外部データ ラッパー (FDW) を使用すると、外部データ ソースをローカルであるかのようにクエリできます。 postgres_fdw
拡張機能により、この接続が容易になります。
Fly プロキシのセットアップ
開始する前に、flyctl
がインストールされていることを確認してください。 Fly Proxy は安全なトンネルを作成します。コマンド構造は次のとおりです:
<code class="language-bash">fly proxy <remote> [remote_host] [flags]</code>
このシナリオでは、コマンドは次のようになります:
<code class="language-bash">fly proxy 5433:5432 -a db_app_name</code>
これにより、Fly.io データベース (db_app_name
) へのローカル トンネル (ポート 5433) が確立されます。
PostgreSQL FDW の構成
拡張機能をインストールします: ローカル PostgreSQL データベースに postgres_fdw
をインストールします:
<code class="language-sql">CREATE EXTENSION IF NOT EXISTS postgres_fdw;</code>
外部サーバーを作成します: リモート データベースへの接続を定義します:
<code class="language-sql">CREATE SERVER fly_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS ( host '127.0.0.1', port '5433', dbname 'db_name' );</code>
ユーザーのマップ: アクセスを許可するユーザー マッピングの作成:
<code class="language-sql">CREATE USER MAPPING FOR local_user SERVER fly_server OPTIONS ( user 'remote_user', password 'remote_password' );</code>
外部テーブルをインポートします: 必要なリモート テーブルをインポートします:
<code class="language-sql">IMPORT FOREIGN SCHEMA foreign_schema_name LIMIT TO (remote_table) FROM SERVER fly_server INTO local_schema_name;</code>
(注: リモート テーブルが ENUM タイプに依存する場合、これらもローカルに作成する必要があります。)
マテリアライズド ビュー (オプション): 読み取り負荷の高い操作の場合、マテリアライズド ビューを使用するとパフォーマンスを向上させることができます。
Java API との統合
FDW とプロキシが構成されている場合、SpringBoot アプリケーションは、外部テーブルまたはマテリアライズド ビューのいずれかを使用して、ローカル データベース接続を通じて外部データをクエリできます。
重要なポイント
以上がローカル開発、リモート データ: Java API から Fly.io PostgreSQL にアクセスするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。