Skip Navigation
Show nav
Heroku Dev Center
  • Get Started
  • ドキュメント
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
  • ドキュメント
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku のアーキテクチャ
    • Dyno (アプリコンテナ)
    • スタック (オペレーティングシステムイメージ)
    • ネットワーキングと DNS
    • プラットフォームポリシー
    • プラットフォームの原則
  • コマンドライン
  • デプロイ
    • Git を使用したデプロイ
    • Docker によるデプロイ
    • デプロイ統合
  • 継続的デリバリー
    • 継続的統合
  • 言語サポート
    • Node.js
    • Ruby
      • Bundler の使用
      • Rails のサポート
    • Python
      • Django の使用
      • Python でのバックグランドジョブ
    • Java
      • Maven の使用
      • Java でのデータベース操作
      • Play Framework の使用
      • Spring Boot の使用
      • Java の高度なトピック
    • PHP
    • Go
      • Go の依存関係管理
    • Scala
    • Clojure
  • データベースとデータ管理
    • Heroku Postgres
      • Postgres の基礎
      • Postgres のパフォーマンス
      • Postgres のデータ転送と保持
      • Postgres の可用性
      • Postgres の特別なトピック
    • Heroku Redis
    • Apache Kafka on Heroku
    • その他のデータストア
  • モニタリングとメトリクス
    • ログ記録
  • アプリのパフォーマンス
  • アドオン
    • すべてのアドオン
  • 共同作業
  • セキュリティ
    • アプリのセキュリティ
    • ID と認証
    • コンプライアンス
  • Heroku Enterprise
    • Private Space
      • インフラストラクチャネットワーキング
    • Enterprise Accounts
    • Enterprise Team
    • Heroku Connect (Salesforce 同期)
    • シングルサインオン (SSO)
  • パターンとベストプラクティス
  • Heroku の拡張
    • Platform API
    • アプリの Webhook
    • Heroku Labs
    • アドオンのビルド
      • アドオン開発のタスク
      • アドオン API
      • アドオンのガイドラインと要件
    • CLI プラグインのビルド
    • 開発ビルドパック
    • Dev Center
  • アカウントと請求
  • トラブルシューティングとサポート
  • データベースとデータ管理
  • Heroku Postgres
  • Postgres の特別なトピック
  • Heroku Postgres での拡張機能、PostGIS、フルテキスト検索辞書

Heroku Postgres での拡張機能、PostGIS、フルテキスト検索辞書

日本語 — Switch to English

最終更新日 2020年06月19日(金)

Table of Contents

  • データ型
  • 外部データラッパー
  • 関数
  • 統計
  • インデックスの種類
  • フルテキスト検索辞書
  • dblink
  • pg_stat_​statements
  • PostGIS
  • サポートされなくなった拡張機能

拡張機能では、機能の関連する部分 (データ型や関数など) をまとめてバンドルし、1 つのコマンドでデータベースにインストールすることができます。Heroku Postgres は、多くの Postgres 拡張機能のほか、拡張機能システムの一部としてバンドルされていないフルテキスト検索などの機能をサポートしています。PostGIS 空間データベース拡張機能のベータバージョンも使用できます。

サポートされている拡張機能の一覧については、データベースのクエリを実行してください。

$ echo 'show extwlist.extensions' | heroku pg:psql
     extwlist.extensions
-----------------------------
btree_gist,chkpass,cube,dblink,dict_int...

いずれかのサポートされている拡張機能を作成するには、heroku pg:psql でセッションを開き、適切なコマンドを実行します。

$ heroku pg:psql
psql (9.6.2)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

ad27m1eao6kqb1=> CREATE EXTENSION hstore;
CREATE EXTENSION
ad27m1eao6kqb1=>

データ型

  • Bloom​ は、空間効率の高いブルームフィルターのインデックスを提供します。create extension bloom

  • Case Insensitive Text​。大文字と小文字が区別されないテキストデータ型。citext に保存された文字列は大文字小文字の情報を保持しますが、クエリで使用されるときは大文字と小文字が区別されません。 create extension citext

  • Cube​: 多次元の立方体。create extension cube

  • HStore​: Postgres 内のキー値ストア。create extension hstore

  • Label Tree​: 関数が関連付けられているツリー状の階層。create extension ltree

  • Large Objects​: 特殊なラージオブジェクト構造に保存されているユーザーデータへのストリーム形式のアクセスを提供します。create extension lo

  • Product Numbering​: 製品 ID およびシリアル番号 (UPC​、 ISBN​、ISSN​ など) を保存します。create extension isn

  • Seg​: セグメントまたは浮動小数点区間を表すための型を提供します。create extension seg

外部データラッパー

  • postgres_fdw​ を使用すると、Postgres データベースは、外部サーバーとして別の Postgres データベースにアクセスできます。

外部データラッパーは、Hobby 層​のデータベースでは使用できません。

関数

  • Address Standardizer​: 一連の定義されたルールに関するアドレスを正規化する 1 行のアドレスパーサー create extension address_standardizer​。US アドレスの一連のルールはすでに含まれています create extension address_standardizer_data_us​。

  • Autoinc​: シーケンスの次の値を整数フィールドに保存します。create extension autoinc

  • Earth Distance​: 地球上の地点間の距離を計算するための関数。create extension earthdistance

  • Fuzzy Match​: 文字列間の類似性を判定するための別の方法。UTF-8 のサポートは限定されています。create extension fuzzystrmatch​ のようなコードを使用して、イベントを表す sObject を作成して適切なエンドポイントに POST します。

  • Insert Username​: 現在のユーザーの名前をテキストフィールドに挿入します。create extension insert_username

  • Intarray​: 整数の null のない配列のソート、操作、およびそのインデックスの作成を行います。create extension intarray

  • ModDateTime​: 現在のタイムスタンプをタイムスタンプフィールドに挿入します。create extension moddatetime

  • PGCrypto​: 暗号化関数によってデータベース内の暗号化が可能になります create extension pgcrypto​。

  • pg_partman​: 時間ベースとシリアルベースの両方のテーブルパーティションセットを作成して管理します。サブパーティション分割もサポートされています。

  • pg_prewarm​: 新しく起動されるデータベースや休止データベースのパフォーマンスを正規化するために、オペレーティングシステムまたはデータベースバッファキャッシュにデータを事前ロードします。

pg_partman と pg_​prewarm は、Hobby 層​のデータベースでは使用できません。

  • sslinfo​: 接続しているクライアントに関する SSL 情報のクエリを実行するための関数を提供します。create extension sslinfo

  • Table Functions & Pivot Tables​: 完全なテーブルを返す関数。スプレッドシートのピボットテーブルと同様の方法でクエリ結果を操作する機能を含みます create extension tablefunc​。

  • tcn​: リスナーにテーブルへの変更を通知するためのトリガー関数を提供します。create extension tcn

  • Timetravel​: 履歴データのクエリを実行するための関数を追加します。create extension timetravel

  • Trigram​: トライグラムの一致​に基づいて、英数字の文字列の類似性 (または、それがないこと) を判定します。検索などの自然言語処理の問題に有効です。create extension pg_trgm。

  • tsm_system_​rows​: システム行を使用したテーブルサンプリングを提供します。create extension tsm_system_rows

  • tsm_system_​time​: システム時刻を使用したテーブルサンプリングを提供します。create extension tsm_system_time

  • UUID Generation​: データベース内の v1、v3、v4、v5 の UUID を生成します。既存の UUID データ型​と適切に連携します。 create extension "uuid-ossp"​ のようなコードを使用して、イベントを表す sObject を作成して適切なエンドポイントに POST します。

統計

  • Row Locking​: テーブルの行ロックの情報を表示します。create extension pgrowlocks

インデックスの種類

  • btree-gist​: GiST​ インデックス演算子。これは一般に、btree では使用できない複数列インデックスや排他制約​を除き、標準の btree インデックスより劣っています。create extension btree_gist

  • btree-gin​: ​GIN​ インデックス演算子。これは一般に、新しい GIN 演算子クラスの開発、または GIN インデックス可能列と btree インデックス可能列の両方に対する複数列 GIN インデックスの作成を除き、標準の btree インデックスより劣っています。

フルテキスト検索辞書

  • dict-int​ - 整数のインデックスの作成方法を制御する、フルテキスト検索のためのフルテキスト検索辞書。create extension dict_int

  • unaccent​ - 文字からアクセントを削除するフィルタリングテキスト辞書。create extension unaccent

さらに、次の辞書はデフォルトでインストールされるため、拡張機能システムを使用して作成する必要はありません。

$ heroku pg:psql
=> \dFd
                             List of text search dictionaries
   Schema   |      Name       |                        Description
------------+-----------------+-------------------------------
 pg_catalog | danish_stem     | snowball stemmer for danish language
 pg_catalog | dutch_stem      | snowball stemmer for dutch language
 pg_catalog | english_stem    | snowball stemmer for english language
 pg_catalog | finnish_stem    | snowball stemmer for finnish language
 pg_catalog | french_stem     | snowball stemmer for french language
 pg_catalog | german_stem     | snowball stemmer for german language
 pg_catalog | hungarian_stem  | snowball stemmer for hungarian language
 pg_catalog | italian_stem    | snowball stemmer for italian language
 pg_catalog | norwegian_stem  | snowball stemmer for norwegian language
 pg_catalog | portuguese_stem | snowball stemmer for portuguese language
 pg_catalog | romanian_stem   | snowball stemmer for romanian language
 pg_catalog | russian_stem    | snowball stemmer for russian language
 pg_catalog | simple          | simple dictionary: just lower case and check for stopword
 pg_catalog | spanish_stem    | snowball stemmer for spanish language
 pg_catalog | swedish_stem    | snowball stemmer for swedish language
 pg_catalog | turkish_stem    | snowball stemmer for turkish language

dblink

dblink​: Postgres データベース間のクエリのサポートを追加します。dblink を使用すると、個別の Heroku Postgres データベース間で、または外部の Postgres データベースとの間でクエリを実行できます。

dblink は、Hobby 層​のデータベースでは使用できません。

pg_stat_​statements

pg_stat_​statements​:

pg_stat_​statements モジュールは、サーバーによって実行されている すべての SQL ステートメントの実行統計を追跡するための手段を 提供します。

使用法

pg_stat_​statements を使用すると、パフォーマンスの問題を追跡 できます。これにより、実行された各クエリとそれに関連するコストを表示する pg_stat_​statements と呼ばれるビューが表示されます。これには、クエリが実行された回数、全体としてかかった合計のシステム実行時間、全体としてヒットした共有メモリ内のブロックの合計数が含まれます。

pg_stat_​statements では、それまでの実行時間の長さには関係なく、取り消されたクエリは取得されません。つまり、statement_timeout​ によって取り消された長時間実行クエリは pg_stat_​statements ビューに反映されません。取り消された高コストのクエリを効果的に診断するには、Postgres ログ​を使用する必要があります。

PostGIS

PostGIS​:

PostgreSQL オブジェクトリレーショナルデータベースに 地理オブジェクトのサポートを追加します。実際上、PostGIS は PostgreSQL サーバーを “空間的に有効にする” ため、地理情報システム (GIS) のバックエンド 空間データベースとして使用できます。

 

Heroku Postgres での PostGIS サポートはベータ版であり、将来変更される可能性があります。

要件

現在、PostGIS は、Postgres バージョン 9.4 以上を使用する本番プラン Heroku Postgres プラン と Hobby プランでのみ使用できます。さらに、PostGIS は、v2.2 としては Postgres 9.5、9.4、9.3 でのみ、v2.1 としては Postgres 9.4 および 9.3 でのみ使用できます。

プロビジョニング

データベースが上記の要件を満たしている限り、他の拡張機能と同様に PostGIS サポートを追加できます。

$ heroku addons:create heroku-postgresql:standard-0

その後、create extension postgis​ を実行するだけです。また、この機能が新しいデータベースでしか使用できないことにも注意してください。データベースが上記の要件を満たしているが、create extension postgis​ の実行時に引き続きエラーが表示される場合は、高速切り替え 手順を使用して PostGIS サポートのある新しいデータベースに移行できます。

データベースに PostGIS がインストールされているかどうかを検出するには、psql から次のクエリを実行します。

=> SELECT postgis_version();
        postgis_version
---------------------------------------
 2.1 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
(1 row)

サポートされなくなった拡張機能

  • PLV8 - この拡張機能の Heroku ベータ期間中、Debian/Ubuntu での PG11+ に対する PLV8 パッケージのメンテナンスは廃止されました。詳細は、ここ​を参照してください。これが変更されれば、PLV8 を再び設定する可能性があります。

関連カテゴリー

  • Postgres の特別なトピック
'PostGIS: Rails での地理空間データの使用' 'PostGIS: Rails での地理空間データの使用'

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Podcasts
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing

Subscribe to our monthly newsletter

Your email address:

  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Heroku Podcasts
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Facebook
  • Instagram
  • Github
  • LinkedIn
  • YouTube
Heroku is acompany

 © Salesforce.com

  • heroku.com
  • Terms of Service
  • Privacy
  • Cookies