BigQuery
ストリームインサート
概要
このブロックは、BigQuery テーブルへレコードを高速に挿入します。
このブロックを使用して挿入したレコードは、使用後30分ほどの間は、データ操作言語(DML)のUPDATE・DELETE・MERGEステートメントを使用した変更はできません。
ストリーミング(tabledata.insertallメソッドまたはStorage Write API)を使用してテーブルに書き込まれた行は、UPDATE、DELETE、MERGEステートメントを使用して変更することはできません。最近の書き込みとは、30分以内に行われたものを指します。テーブル内の他のすべての行は引き続き、UPDATE、DELETE、MERGEステートメントを使用して変更できます。ストリーミング データがコピー オペレーションで使用可能になるまでに最大90分かかることがあります。
データ操作言語(DML)の使用| BigQuery | Google Cloud
プロパティ
| プロパティ名 | 説明 |
|---|---|
| ブロック名 |
編集パネルに配置した当該ブロックの表示名が変更できます。 ブロックリストパネル中のブロック名は変更されません。 |
| GCPサービスアカウント | このブロックで使用するGCPサービスアカウントを選択します。 |
| 投入先のデータセット |
投入先のデータセットIDを指定します。 |
| 投入先のテーブル |
投入先のテーブルIDを指定します。 |
| ブロックメモ | このブロックに関するメモが記載できます。このブロックの処理に影響しません。 |
| 投入データの変数 | 投入データを参照する変数を指定します。 |
使用例
ここでは、News APIを使用して、「HTTP GET」ブロックと「ストリームインサート」ブロックを組み合わせ、最新のニュース記事データをBigQueryにリアルタイムで取り込む方法を紹介します。
- News APIのアカウントを作成し、APIキーを取得します。
- 「HTTP GET」ブロックを以下のように設定します。
プロパティ名 値 URL https://newsapi.org/v2/top-headlinesクエリーパラメーター キー バリュー countryjpレスポンスを格納する変数 news_responseリクエストヘッダー キー バリュー Authorization取得したAPIキー - 「ストリームインサート」ブロックを以下のように設定します。
プロパティ名 値 投入先のデータセット example投入先のテーブル news_top_headlines投入データの変数 news_response.articles
これら2つのブロックを組み合わせたフローを実行すると、News APIから取得した最新のニュース記事データが、リアルタイムでBigQueryのexample.news_top_headlinesテーブルにストリームインサートされます。
このテーブルのスキーマは以下のようになります。
| 名前 | タイプ | モード |
|---|---|---|
| source | RECORD | NULLABLE |
| source.id | STRING | NULLABLE |
| source.name | STRING | NULLABLE |
| author | STRING | NULLABLE |
| title | STRING | NULLABLE |
| description | STRING | NULLABLE |
| url | STRING | NULLABLE |
| urlToImage | STRING | NULLABLE |
| publishedAt | TIMESTAMP | NULLABLE |
| content | STRING | NULLABLE |
あとは、BigQueryでこのテーブルを分析することで、ニュースのトレンドや話題をリアルタイムで把握できます。たとえば、以下のようなことが可能です。
- 人気のキーワードや話題の抽出
- ニュースソース別の記事数の集計
- 特定のキーワードを含む記事の抽出
- 記事公開数の時系列変化の可視化
このように、News APIとBigQueryを連携させることで、リアルタイムでニュースデータを収集・分析できるようになります。
News API以外にも、様々なデータソースとBigQueryを組み合わせることで、多様なリアルタイム分析が実現可能です。