2

MongoDBの外部データ ラッパーは非常に優れています。以下を除いて、これらの手順を使用して動作するようになりました。

  • 内部に動的フィールドを持つオブジェクト - そのような場合に使用する PostgreSQL の型は?

    { "key1": 一部、... }

  • オブジェクトの配列 - そのために使用する PostgreSQL の型は? 配列の長さは異なる場合がありますが、オブジェクトの内部構造は均一です。

    [ { "a": 1 }, { "a": 2 }, { "a": 3 } ]

最近の PostgreSQL バージョンの JSON 機能に関するこれらのスライドを見つけました。きちんとした。しかしBSONJSONまたはJSONB、FDW によって SQL データ型として認識されないようです。

私が使用する場合:

  CREATE FOREIGN TABLE t6
  (
      "aaa.bbb" JSON    -- 'bbb' is an array of JSON objects
  )
  SERVER mongo_server OPTIONS(...);

  SELECT "aaa.bbb" AS bbb FROM t6;

私は得る:

  psql:6.sql:152: ERROR:  cannot convert bson type to column type
HINT:  Column type: 114

ノーマルタイプ等TEXTは動作します。FLOAT

4

1 に答える 1

1

@pozsが指摘していたように、EnterpriseDBフォークがそれを行います。JSONデータをタイプとしてマークするだけです。

ただし、ビルド システムは私の好みではかなり奇妙で、ビルド コンポーネントが見つからない場合に適切なエラーが表示されるわけではありません (明らかに Linux ベースであり、適切にチェックせずに多数のツールがあることを期待しているだけです)。

OS X + Homebrewでビルドする方法は次のとおりです。

$ brew install libtool libbson autoconf automake
$ ./autogen.sh --with-legacy

--with-metaバリアントはJSON サポートを提供しないことに注意してください。これが、とにかくこのフォークを選択した理由です。

参照。https://github.com/EnterpriseDB/mongo_fdw/issues/20

于 2015-02-10T15:43:58.430 に答える