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
クエリーパラメーター キー バリュー country
jp
レスポンスを格納する変数 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を組み合わせることで、多様なリアルタイム分析が実現可能です。