データクリップとのクエリ結果の共有
最終更新日 2024年05月02日(木)
Table of Contents
Heroku Dataclips を使用すると、Heroku Postgres データベースへの SQL クエリを作成し、その結果を同僚、サードパーティツール、パブリックと共有できます。データクリップの受信者は、そのデータをブラウザで表示できるほか、JSON および CSV 形式でダウンロードすることもできます。
Dataclips は Shield データベースに接続できません。
クイックスタート
data.heroku.com/dataclips にアクセスし、
New Dataclip
(新しいデータクリップ) をクリックします。データクリップのタイトルと、それを実行する Heroku Postgres データベースを指定します。メインテキストエリアに SQL クエリを次のように入力します。
Save & Run
(保存して実行) をクリックします。クエリの結果が、そのクエリの下のテーブルに表示されます。
データクリップの作成
Schema Explorer
Schema Explorer には、データクリップに関連付けられたデータベースのテーブルと列の情報 (各列のデータ型を含む) が表示されます。
さらに大きなスキーマの場合は、Schema Explorer の上部にあるテキストボックスに入力することによって、表示される情報をフィルタリングできます。
Schema Explorer は、データクリップのために選択されているデータベースのスキーマを反映するように自動的に更新されます。
エディタのオートコンプリート
データを入力すると、クエリエディタからオートコンプリートの提案が提供されます。これらの提案は、選択されているデータベースのスキーマのほか、Postgres SQL 言語の構文や機能に基づいています。
結果の表示
有効なクエリでデータクリップを保存するたびに、クエリが実行され、その結果がクエリの下のテーブルに表示されます。
グラフ表示
データクリップの結果に日付またはタイムスタンプデータの列と数値データの列の両方が含まれている場合は、その結果をグラフとして表示できます。グラフの表示が可能な場合は、結果のテーブルの上にあるトグルがアクティブになります。
グラフ表示は、データクリップの結果に関して次のすべてが当てはまる場合に可能になります。
- 2 つ以上の列が存在する。
- 時系列データの場合: いずれかの列が日付またはタイムスタンプであり、別の列が数値である。
- カテゴリデータの場合: いずれかの列がカテゴリ (文字列) であり、もう一方の列が数値である。
- 10 ~ 1,000 行が存在する。
データクリップへのアクセスと可視性
アプリの共同作業者であるすべての Heroku ユーザーは、アプリの関連付けられたデータベース上に作成されたデータクリップにアクセスして編集できます。アプリの共同作業者は、Heroku CLI または Heroku Dashboard のどちらかを使用して表示できます。
Enterprise Team がアプリを所有する場合、データクリップにアクセスするには、チームメンバーにもそのアプリに対する deploy
または operate
アクセス許可が必要です。
いずれの場合も、ユーザーは、そのデータベースのデフォルトの資格情報にアクセスできる必要があります。
Heroku Postgres データベースは、それを所有していない Heroku アプリにアタッチできます。Heroku ユーザーが特定のデータベースのデータクリップを表示するには、そのデータベースを所有しているアプリに対する必要なアクセス許可を持っている必要があります。そのデータベースがアタッチされているだけのアプリに対するアクセス許可では不十分です。
データクリップの結果の共有
データクリップの結果を特定のユーザー、チーム、または一般のパブリックと共有できます。結果をこのように共有しても、データクリップのクエリや、基礎となるアプリケーションに関するその他の情報 (アプリ名、データベースの詳細、データクリップ作成者のメールアドレスなど) が公開されることはありません。
共有するデータクリップを作成したら、Share
(共有) ボタンをクリックします。
共有ポップアップが表示されます。
パブリックとの共有
データクリップをパブリックと共有するには、共有可能リンクの横にある Enable
(有効化) をクリックして一意の URL を生成します。
この URL にアクセスするために、認証された Heroku ユーザーセッションは必要ありません。
共有可能リンクの URL は、共同作業者としてデータクリップにアクセスするために使用する URL とは異なります。ブラウザのアドレスバーからではなく、共有ポップアップのテキストボックスから URL をコピーするようにしてください。
既存の共有可能リンクを取り消すには、Disable
(無効化) をクリックします。これにより、すべてのユーザー (以前にこの URL にアクセスしたすべてのユーザーを含む) のアクセスと、エクスポートされた URL が取り消されます。
既存の共有可能リンクを置き換えるには、共有フライアウトからそのリンクを無効化して再び有効化するだけです。そのたびに新しい URL が生成されます。
データクリップの結果のエクスポート
サードパーティアプリケーションで結果を読み込むには、共有可能リンクの横にある Enable
(有効化) をクリックし、CSV URL または JSON URL のどちらか (サードパーティアプリケーションが予期する形式) をコピーします。
これらの URL を秘密に保管します。共有可能 URL があれば、だれでも認証なしでデータクリップの結果を表示できます。
データクリップの共有可能 URL が漏洩したと思われる場合、URL を無効化すると、既存の共有可能リンクが無効化され、新しいリンクを生成できます。古い共有可能リンクのすべての URL はただちに機能を停止します。
Google Sheets との統合
データクリップの結果を Google Sheets スプレッドシートにインポートする方法は、データをプレゼンテーションのためにさらに改良したり、複数のデータクリップの出力をダッシュボードやその他の成果物に合成したりできる、優れたアプローチです。
データクリップの結果を Google Sheets スプレッドシートに組み込むには、共有可能リンクのダイアログの =IMPORTDATA(...)
テキストをスプレッドシートのセル A1
に貼り付けます。=IMPORTDATA(...)
文字列には、データクリップの CSV URL および JSON URL と同じパブリック URL が含まれています。
Google Sheets では、=IMPORTDATA(...)
関数の内容がビューアで非表示になりません。このスプレッドシートを見ることができれば、だれでも =IMPORTDATA(...)
文字列から CSV URL をコピーして貼り付けることができます。信頼できる関係者だけがこれを開くことができるように Google Sheets へのアクセスを制限する必要があります。
個人やチームとの共有
データクリップの結果を個々の Heroku ユーザーや、自分が属している Heroku Teams と共有できます。共有ポップアップの Add
(追加) ボタンをクリックして、次のフォームを表示します。
個人と共有するには、メールアドレスを指定し、Add
(追加) をクリックします。
データクリップの結果を任意のメールアドレスと共有できます。ただし、データクリップの結果にアクセスするには、そのメールアドレスが受信者の Heroku アカウントに関連付けられている必要があります。
自分が属している Heroku Team と共有するには、チームの名前を入力すると表示されるドロップダウンオプションから選択します。
選択されたチームのすべてのメンバーがデータクリップの結果を表示できます。
共有アクセスを取り消すには、アクセスを取り消す個人またはチームの横にある Delete
(削除) ボタンをクリックします。
結果のダウンロード
データクリップの結果は CSV および JSON 形式でダウンロードできます。結果を CSV または JSON ファイルとしてローカルマシンにダウンロードするには、結果セクションにある対応するボタンをクリックします。
データクリップの実行とデータの新しさ
データクリップの実行 (データベースに対してクエリが実行される時点) と結果の表示の間には重要な区別があります。
データクリップが表示またはダウンロードされるたびに、Heroku はそのクエリを実行します (過去 60 秒間に実行されていない場合)。ただし、データクリップが新しいクエリの実行の完了を待つことはありません。代わりに、最後に完了した実行の結果をただちに返します。
データクリップが過去 7 日間に少なくとも 1 回表示またはダウンロードされている限り、Heroku はそのクエリを自動的に実行し、その結果を更新します。Heroku は、結果が表示またはダウンロードされたかどうかには関係なく、1 時間に約 1 回このアクションを実行します。アイドル状態が 7 日間続くと、データクリップが再びアクセスされるまで、Heroku はそのクエリをまったく実行しなくなります。
データクリップをブラウザで開いたままにしていると、そのクエリは 1 ~ 2 分ごとに実行されます。新しい実行が完了すると、更新された結果が使用可能であることを示すバナーがページに表示されます。
データクリップの復旧
データベースが (たとえば、アップグレード)の結果として) Heroku Postgres の別のインスタンスに移行されると、古いデータベースに関連付けられたデータクリップは孤立し、復旧が必要になります。これらのデータクリップは、データクリップの一覧ビューに次のように赤色で通知されます。
孤立したデータクリップを新しいデータベースにアタッチするには、データクリップの詳細ページにアクセスします。
Select a datastore
と表示されているドロップダウンメニューから新しいデータベースを選択し、Save & Run
(保存して実行) をクリックします。データクリップが指定されたデータベースにアタッチされ、クエリが実行されます。
多数のデータクリップを復旧する必要がある場合は、サポートチケットを開いてください。
制限事項
- データクリップは、Shield 層プランを除くすべての Heroku Postgres データベースに対して作成できます。
- データクリップは最大 100,000 行を返すことができます。
- データクリップの結果のサイズは最大で 104,857,600 バイトです。
- サイズが 26,214,400 バイトより大きいデータクリップの結果はダウンロード可能ですが、その結果をブラウザで調査することはできません。
- データクリップのクエリは 10 分後にタイムアウトします。
- データクリップの結果を、自分が属していない Heroku Teams と共有することはできません。
.csv
または.json
エンドポイントから結果を取得する認証されていないユーザーは、IP あたり 1 分ごとに 30 リクエストに制限されます。