0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft Fabric Data Factory の ODBC コネクタで PostgreSQL データを取得する

Posted at

はじめに

PostgreSQL コネクタは Fabric Data Factory でオンプレミスデータゲートウェイをサポート外だったので ODBC 接続を試みたメモ

注意

2024/9/3 時点で↓のリンクではODBCコネクタのデータパイプラインはサポート外の模様。でも問題なく動く。

こっちのリンクだとサポートになってる。docsのミスな気もする
https://learn.microsoft.com/ja-jp/fabric/data-factory/pipeline-support

image.png

準備

テーブルはこちら

-- データベースを作成する(既存のデータベースを使用する場合はこの行をスキップ)
CREATE DATABASE sample_db;

-- 作成したデータベースに接続する
\c sample_db;

-- ordersテーブルを作成する
CREATE TABLE orders (
    order_id SERIAL PRIMARY KEY,        -- 自動インクリメントの注文ID
    customer_id INTEGER NOT NULL,       -- 顧客ID
    order_date DATE NOT NULL,           -- 注文日
    order_amount NUMERIC(10, 2) NOT NULL, -- 注文金額
    order_status VARCHAR(50)            -- 注文ステータス(例:'pending', 'completed', 'cancelled')
);

-- サンプルデータを挿入する
INSERT INTO orders (customer_id, order_date, order_amount, order_status)
VALUES 
    (1, '2024-09-01', 100.00, 'pending'),
    (2, '2024-09-02', 150.50, 'completed'),
    (1, '2024-09-03', 200.75, 'cancelled');


オンプレミスデータゲートウェイのセットアップ

セットアップ済み:
image.png

odbc ドライバー

https://www.postgresql.org/ftp/odbc/ から odbc ドライバーをインストール

今回はこちらをインストール

image.png

検証

1. ODBC 接続の作成と確認

odbc 接続マネージャでシステム DSNを追加して作成

image.png

image.png

image.png

テストもOK

image.png

2. Fabic 上の接続を作成

接続とゲートウェイの管理に移動

image.png

UI的にはこちら

image.png

新規ボタン押して、以下のように入力

接続文字列は dns={odbcマネージャで作成したデータソース名}

image.png

成功すると以下のように表示

image.png

3. データフロー Gen 2 での取得

データフローの作成画面で、データソースを選択していく

image.png

接続文字列を入れると作成した接続が参照される

image.png

image.png

データ同期先を設定する

image.png

テーブル名を入力

image.png

image.png

image.png

公開後、データ更新が完了を確認

image.png

データがレイクハウスに連携される

image.png

4-1. データパイプラインでの取得(レイクハウステーブルに連携)

データパイプライン作成画面にて、コピーアシスタントを使う

image.png

データフローの時と同様に onelake datahub から探すが、先ほど作成した接続が表示されたのでこちらを使う。ちょっと楽になってる

image.png

image.png

image.png

image.png

保存・実行する

image.png

成功を確認

image.png

データもOK

image.png

4-2. データパイプラインでの取得(parquet 化)

テーブルのスキーマ変更に強い仕組みを作るため、データレイクにファイルで出力したい。

コピーアクティビティの設定をファイル、parquet に変更。
ファイルは確実に一つにまとまってほしかったのであえて指定

image.png

今回は以下のようにフォルダを指定

@concat(
    'landing/qiita/postgresql/public_orders/run_date=',
    formatDateTime(convertFromUtc(utcnow(),'Tokyo Standard Time'),'yyyyMMdd'),
    '/run_at=',
    formatDateTime(convertFromUtc(utcnow(),'Tokyo Standard Time'),'yyyyMMddHHmmss'
    )
)

完了し、データ出力を確認

image.png

内容もOK

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?