まず、GCPにBigQueryにTMCNの価格を入れます。
1. nomics.comというサイトからFree CSVをdownload
https://nomics.com/assets/tmcn-timecoin-protocol
直近100日分のデータを取得できる。timestamp, open, hight, low, close, volumeなど、一般的なデータ形式。
2. GCPのBigQueryにDownloadしたtmcnのデータをimport
3. PythonでGCP BigQueryからデータを取得して、matplotlibで2軸の折れ線グラフを作る
from google.cloud import bigquery import matplotlib.pyplot as plt client = bigquery.Client.from_service_account_json('./client_credentials.json') QUERY = ( 'SELECT * FROM `gce-test-331622.test.tmcn` ORDER BY timestamp ASC LIMIT 100') query_job = client.query(QUERY) rows = query_job.result() x = [] y1 = [] y2 = [] for row in rows: print(str(row.timestamp)[0:10] + " close:" + str(row.close) + " volume:" + str(row.volume)) date = str(row.timestamp)[0:10] x.append(date) y1.append(row.close) y2.append(row.volume) plt.figure(figsize=(10,8)) fig, ax1 = plt.subplots() ax2 = ax1.twinx() plt.title("tmcn 2021/08/13-2021/11/21") ax1.plot(x, y1, marker=".", color = "magenta", linestyle = "--") ax1.set_ylabel('$close-price(pink)$') ax2.plot(x, y2, marker="o", color = "cyan", linestyle = ":") ax2.set_ylabel('$trade-volume(blue)$') plt.savefig('img/tmcn.jpg',dpi=100)
4. 作成した画像をHTMLで表示
<h1>timcoin protocol</h1> <a href="https://github.com/TimeCoinProtocol/timecoin">TimeCoinProtocol / timecoin</a><br> <img src="img/tmcn.jpg" width="400" height="300"> // 省略
5. Githubにpushして、Google Cloud DeployでGCEにデプロイする
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: gcloud args: ['compute', 'scp', '--recurse', 'img', 'instance-1:/var/www/html/img' , '--zone','asia-northeast1-a'] - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: gcloud args: ['compute', 'scp', '--recurse', 'index.html', 'instance-1:/var/www/html/index.html' , '--zone','asia-northeast1-a']
cloudbuild.yamlで以下のように書くと、argsは下のargsしか実行されないので、2回書かなければならないので注意が必要
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: gcloud args: ['compute', 'scp', '--recurse', 'img', 'instance-1:/var/www/html/img' , '-- args: ['compute', 'scp', '--recurse', 'index.html', 'instance-1:/var/www/html/index.html' , '--zone','asia-northeast1-a']
うーむ、データ量が多い時などはBigQueryは使えそうだにゃーーーーーーーー