記事の対象者と解消できるお悩み
【対象者】
初中級データアナリスト
【興味関心】
- イーサリアムに興味がある方
- ブロックチェーン技術が知りたい方
- BigQueryでブロックチェーンデータを分析してみたい
【解消できるお悩み】
- BigQueryで何ができる? 具体的なユースケースを紹介!
- プログラミング知識ゼロでも大丈夫! 簡単な操作でデータ分析が可能!
- イーサリアムブロックチェーンデータから読み解く、スマートコントラクトの最新動向!
記事作成者
【人物】株式会社志庵 代表取締役 佐藤 光 起業6年目
【経歴】株式会社光通信➜光通信同期と起業➜データアナリスト転職➜SaaSで2度目起業
【会社実績】
SaaS 資金調達無しARR2億円
SaaS GMV200億円
【内容】自社AaaSであるStruccle、webスクレイピング、BigQueryに関する記事を作成
各種用語
- ARR(Annual Recurring Revenue)
- サブスクリプションサービスの年間売上※当社はSaaS売上
- Struccle(ストラクル)
- 株式会社志庵が独自開発しているAaaS
- AaaS(アース)
- Data Analytics as a Serviceの意
- SaaS(サース)
- Software as a Serviceの意
- GoogleCloudPlatform
- Googleが提供するクラウドプラットフォーム。この中に様々なサービスが存在する。
- GCP(ジーシーピー)
- GoogleCloudPlatformの略
- BigQuery(ビッグクエリ)
- 上記GCPの中に含まれるデータ分析基盤サービス
- SQL(エスキューエル)
- データベースを操作するプログラミング言語
- クエリ
- SQLで記述した命令文
- クエリ例)
- SQL構文のクエリ⬇
SELECT item_name, price FROM sales_table where price >= 1000;
- 上記クエリ(命令文)の意味としては「売上テーブル(sales_table)から価格(price)が1000円以上の商品名(item_name)と価格(price)を抽出する」
- SQL構文のクエリ⬇
- ペタバイト
- データの単位 ペタバイト=1000テラバイト=約100兆行のデータ
概要
ブロックチェーン技術は、金融、サプライチェーン、医療など、様々な分野で革新をもたらしています。その中でも、スマートコントラクトは、契約の自動実行を可能にする技術として注目を集めています。スマートコントラクトの利用状況やトレンドを把握することは、ブロックチェーン技術のビジネス活用を考える上で非常に重要です。
今回は、Google Cloudのデータウェアハウス「BigQuery」と、Ethereumのブロックチェーンデータを使って、スマートコントラクトの最新動向を分析してみましょう。BigQueryの強力な分析機能を用いることで、膨大なブロックチェーンデータから効率的に情報を抽出することができます。この記事では、BigQueryを使ってブロックチェーンデータ分析を行う方法と、そこから得られたインサイトを紹介します。データ分析初心者の方でも、BigQueryを使えば、ブロックチェーン技術の最前線を理解する一助となるでしょう。
目次
- BigQueryでブロックチェーンデータ分析を行うメリット
- 分析に使用するBigQueryのデータセット
- BigQueryでスマートコントラクトの最新動向を分析する手順
- BigQueryを使ったブロックチェーンデータ分析例
- FAQ:BigQueryに関するよくある質問
- まとめ:BigQueryでブロックチェーンデータ分析を行い、ビジネスの可能性を広げよう!
1. BigQueryでブロックチェーンデータ分析を行うメリット
BigQueryは、ブロックチェーンデータ分析に最適なツールです。その理由は、以下の様なメリットがあるからです。
- 大規模データの高速処理: 膨大なブロックチェーンデータを高速に分析できるため、トランザクションの傾向やスマートコントラクトの利用状況を効率的に把握できます。
- 様々なデータソースとの連携: 公開データ、企業の取引データ、市場データなど、様々なデータソースと連携できるため、ブロックチェーンデータ分析に必要なデータを統合的に分析できます。
- 豊富な分析機能: SQL、機械学習、統計分析など、高度な分析機能を利用できるため、複雑なブロックチェーンデータ分析にも対応できます。
- コストパフォーマンスの高さ: 従量課金制なので、必要な時に必要なだけ利用でき、コストを抑えられます。
- 高いセキュリティ: Google Cloudの強固なセキュリティ基盤により、安心してデータを管理できます。
2. 分析に使用するBigQueryのデータセット
今回の分析では、BigQueryの公開データセット「Ethereum Blockchain」を使用します。このデータセットには、Ethereumのブロックチェーンデータが格納されています。データの内容は、ブロック情報、トランザクション情報、スマートコントラクト情報などです。
3. BigQueryでスマートコントラクトの最新動向を分析する手順
BigQueryでブロックチェーンデータ分析を行い、スマートコントラクトの最新動向を分析する手順は以下の通りです。
3.1 1. データ確認
まず、データセットの内容を確認します。BigQueryコンソールのUIでデータセットのスキーマを確認したり、サンプルデータをプレビューしたりすることで、データの構造や内容を理解することができます。`bigquery-public-data.blockchain_analytics_ethereum_mainnet_us` データセットには、 `contracts` や `blocks` などのテーブルが含まれており、スマートコントラクトやトランザクションに関する詳細情報が記録されています。
3.2 2. データ加工
必要に応じて、データを加工します。例えば、日付データを年、月、日、曜日などに分割したり、特定の種類のスマートコントラクトに絞り込んだり、集計を行ったりします。BigQueryは、SQLを使ってデータ加工を行うための様々な関数を提供しています。
3.3 3. データ分析
加工したデータに対して、SQLクエリやBigQuery MLなどを用いて分析を行います。例えば、スマートコントラクトの作成数推移、利用されているスマートコントラクトの種類、スマートコントラクトのトランザクション量などを分析することができます。また、機械学習を用いて、スマートコントラクトのリスクを予測するモデルを構築することも可能です。
3.4 4. 考察と分析結果の活用
分析結果に基づいて、スマートコントラクトの最新動向やトレンドを考察します。どのような種類のスマートコントラクトが人気なのか、スマートコントラクトの利用はどのように変化しているのか、どのようなビジネス分野でスマートコントラクトが活用されているのかなどを分析し、レポートにまとめます。分析結果を基に、新規ビジネスのアイデア創出や、既存ビジネスへのブロックチェーン技術導入の検討などに役立てることができます。
4. BigQueryを使ったブロックチェーンデータ分析例
今回は、BigQuery公開データセットbigquery-public-data.blockchain_analytics_ethereum_mainnet_us.blocksを分析し、イーサリアムブロックチェーンにおけるスマートコントラクトの最新動向を調査します。
このデータセットには、ブロックチェーンの基本的な構成要素であるブロックに関するデータが豊富に含まれています。
ブロックサイズやガス使用量、マイナーアドレスなどを分析することで、スマートコントラクトの利用状況やネットワークの健全性などを把握することができます。
BigQuery分析例:時間帯別ブロック生成数とガス使用量
スマートコントラクトの実行状況を時間帯別に把握するため、ブロック生成日時(block_timestamp)の時間帯別に、ブロック生成数(block_count)と平均ガス使用量(average_gas_used)を集計します。
SELECT
EXTRACT(HOUR FROM block_timestamp) AS block_hour,
COUNT(*) AS block_count,
AVG(gas_used) AS average_gas_used
FROM `bigquery-public-data.blockchain_analytics_ethereum_mainnet_us.blocks`
GROUP BY 1
ORDER BY block_hour
【BigQuery SQL解説】
- EXTRACT(HOUR FROM block_timestamp)で、ブロック生成日時の時間帯を抽出します。
- COUNT(*)で、時間帯ごとのブロック生成数をカウントします。
- AVG(gas_used)で、時間帯ごとの平均ガス使用量を計算します。
- GROUP BY句で、時間帯(block_hour)ごとに集計します。
- ORDER BY句で、時間帯(block_hour)の昇順に並べ替えます。
【BigQuery分析での活用例】
- 時間帯別にブロック生成数とガス使用量を可視化することで、スマートコントラクトの利用が活発な時間帯や、ネットワークの混雑状況などを把握できます。
- 特定の時間帯にガス使用量が急増している場合は、その時間帯に実行されたトランザクションやスマートコントラクトをさらに詳しく分析することで、ガス使用量増加の要因を特定することができます。
BigQuery分析例:マイナー別ブロック生成数と報酬額
ブロックチェーンネットワークを支えるマイナーの活動状況を分析するため、マイナーアドレス(miner)別に、ブロック生成数(block_count)と推定報酬額(estimated_reward)を集計します。
WITH block_rewards AS (
SELECT
miner,
COUNT(*) AS block_count,
(COUNT(*) * 2 + SUM(withdrawals.amount) / POWER(10, 18)) AS estimated_reward
FROM `bigquery-public-data.blockchain_analytics_ethereum_mainnet_us.blocks`
, UNNEST(withdrawals) AS withdrawals
GROUP BY 1
)
SELECT
miner,
block_count,
estimated_reward
FROM block_rewards
ORDER BY block_count DESC
【BigQuery SQL解説】
- WITH句でblock_rewardsという共通テーブル式を定義し、マイナーアドレス別にブロック生成数と報酬額を計算します。
- UNNEST(withdrawals) AS withdrawalsで、各ブロックに含まれるバリデータ報酬(withdrawals)を展開します。
- (COUNT(*) * 2 + SUM(withdrawals.amount) / POWER(10, 18)) AS estimated_rewardで、ブロック生成報酬(2ETH)とバリデータ報酬を合計し、推定報酬額を計算します。
- GROUP BY句で、マイナーアドレス(miner)ごとに集計します。
- ORDER BY句で、ブロック生成数(block_count)の降順に並べ替えます。
【BigQuery分析での活用例】
- マイナー別のブロック生成数と報酬額をランキング形式で表示することで、ネットワークにおけるマイナーの貢献度や、報酬の偏りなどを把握できます。
- 特定のマイナーが報酬を独占している場合は、そのマイナーのハッシュレートや、使用しているマイニングプールなどを調査することで、ネットワークの健全性やセキュリティリスクなどを評価することができます。
注意点
- これらのクエリは、BigQuery公開データに基づいています。データの正確性や最新性については、実際のBigQuery公開データをご自身でご確認ください。
- 当該分析は、様々な要因を総合的に判断する必要があります。これらのクエリは分析の一例であり、意思決定の根拠として単独で使用すべきではありません。
5. FAQ:BigQueryに関するよくある質問
Q1. BigQueryの無料枠を超えて利用すると、どのくらい費用がかかりますか?
A1. 無料枠を超えた場合、従量課金制で料金が発生します。料金は、処理したデータ量やストレージ容量などによって異なります。詳しくは、BigQueryの料金ページをご確認ください。
Q2. BigQueryで使えるSQLは、他のデータベースと同じですか?
A2. BigQueryは標準SQLをサポートしており、他のデータベースで学んだSQLの知識を活かすことができます。ただし、BigQuery独自の関数や構文も存在するため、BigQueryのドキュメントで詳細を確認することをおすすめします。
Q3. SQLの学習には、どのような教材がありますか?
A3. SQLの学習には、オンライン学習サイト、書籍、動画教材など、様々な教材があります。初心者向けの教材から、上級者向けの教材まで、レベルに合わせて選ぶことができます。Googleが提供するBigQueryのチュートリアルもSQLの学習に役立ちます。
6. まとめ:BigQueryでブロックチェーンデータ分析を行い、ビジネスの可能性を広げよう!
BigQueryは、ブロックチェーンデータ分析に最適なツールです。BigQueryの高速な処理性能、豊富な分析機能、そして無料公開データセットを活用することで、誰でも簡単にブロックチェーンデータ分析を行うことができます。スマートコントラクトの分析を通して、ブロックチェーン技術への理解を深め、ビジネスの可能性を広げていきましょう!
BigQuery導入サポート、転職検討中の方はお問い合わせフォームからご相談くださいませ。
誠心誠意精一杯対応いたします。
【参考URL】
GoogleCloudPlatform:https://console.cloud.google.com/welcome/new
BigQuery:https://cloud.google.com/bigquery?hl=ja
BigQueryリリース情報:https://cloud.google.com/bigquery/docs/release-notes
BigQuery料金:https://cloud.google.com/bigquery/pricing
BigQuery料金無料枠:https://cloud.google.com/bigquery/pricing?hl=ja#free-tier
Google Cloud活用事例:https://cloud.google.com/customers/index.html?hl=ja#
Looker Studio:https://cloud.google.com/looker-studio?hl=ja
Looker Studioサンプル:https://cloud.google.com/bigquery/docs/visualize-looker-studio?hl=ja