Firebase是Firebase,Inc。於2011年開發的移動和Web應用程序開發平台,隨後於2014年被Google收購。截至2018年10月,Firebase平台共有18種產品,150萬個應用程序使用這些產品。 wiki
Firebase 支援 Android、iOS及網頁的app雲端開發平台。 截錄出處
- 開發(Develop)
安全且高效能。
提供的後端服務 include即時資料庫 (Realtime database)
、
簡單的身分驗證模組(Authentication)、雲端訊息(Cloud Messaging)、
主機(Hosting)、檔案儲存(Storage)、及遠端配置(Remote Config)等
讓使用者可以輕鬆測試不同環境(OS與硬體裝置)的產品運作是否正常及順暢
。- 成長(Grow) : 與Google的深度整合,串接app行為資料,讓使用者(app開發者)提供更精準的廣告或溝通訊息給顧客。
- 獲利(Earn) : 廣告。
- 事件紀錄無上限
- 支援原始資料自動匯出
巨量資料分析
PB等級的資料
BigQuery
BigQuery:
- 收費 : 查詢和資料儲存
- 免費 : 資料載入和匯出
圖片提供:Steven Hsieh
- 可直接行動的分析工具 : 將客戶群分類,推撥(push)廣告給目標族群。
在使用過SQL Server(Microsoft),再裝 Visual Studio,安裝時間久,耗記憶體。 (壞印象)
但其實很多國家考試都很喜歡考 (C# plus SQL) ,而通常會使用的開發平台為以上所提的兩個。
接Case時,分析需求後,思考使用的工具,PHP plus MySQl 最為適當。
在 安裝上 我使用 XAMPP ,簡易網頁伺服器,還包含MySQL。 安裝快速,不會耗記憶體,方便使用。(好印象)
這次想來嘗嘗鮮,且不想總是開著電腦(收集OpenData),所以我選擇 FireBase來體驗看看。
可以看看這位大師寫的教學文
設定firebase的存取
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
cred = credentials.Certificate('./serviceAccount.json') # 憑證放置路徑
firebase_admin.initialize_app(cred)
db = firestore.client()
介接API的資料
from hashlib import sha1
import hmac
from wsgiref.handlers import format_date_time
from datetime import datetime
from time import mktime
import base64
from requests import request
from pprint import pprint
import json
app_id = ''
app_key = ''
class Auth():
def __init__(self, app_id, app_key):
self.app_id = app_id
self.app_key = app_key
def get_auth_header(self):
xdate = format_date_time(mktime(datetime.now().timetuple()))
hashed = hmac.new(self.app_key.encode('utf8'), ('x-date: ' + xdate).encode('utf8'), sha1)
signature = base64.b64encode(hashed.digest()).decode()
authorization = 'hmac username="' + self.app_id + '", ' + \
'algorithm="hmac-sha1", ' + \
'headers="x-date", ' + \
'signature="' + signature + '"'
return {
'Authorization': authorization,
'x-date': format_date_time(mktime(datetime.now().timetuple())),
'Accept - Encoding': 'gzip'
}
import os
import time
from apscheduler.schedulers.blocking import BlockingScheduler
def tick():
global str1
a = Auth(app_id, app_key)
response = request('get', "https://ptx.transportdata.tw/MOTC/v2/Bus/RealTimeByFrequency/InterCity/9018?$filter=Direction%20eq%20'0'&$top=150&$format=JSON", headers= a.get_auth_header())
str1 = str(response.content,'utf-8')
jsonValue = json.loads(str1)
for item in jsonValue:
print('GPSTime:'+item['GPSTime'])
print(item['BusPosition']['PositionLat'])
print('經度:',item['BusPosition']['PositionLon'])
print('Speed',item['Speed'])
doc = {
'PlateNumb': item['PlateNumb'],
'GPSTime': item['GPSTime'],
'Lat':item['BusPosition']['PositionLat'],
'Lon':item['BusPosition']['PositionLon'],
'Speed':item['Speed']
}
doc_ref = db.collection("bus").document(item['GPSTime'])
doc_ref.set(doc)
設定排程 每五秒進行爬取
if __name__ == '__main__':
scheduler = BlockingScheduler()
scheduler.add_job(tick, 'interval', seconds=5)
print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C '))
try:
scheduler.start()
except (KeyboardInterrupt, SystemExit):
pass
改自劉沛影片簡單易上手,讚啦 ~~~ 未來請多多指教!!!
看到壞印象那邊我笑了XDDD
Visual Studio 真的超當
而且那個時候我安裝 Microsoft SQL 2012裝了好多次
都不知道為什麼我家小黑都像腦殘一樣無法安裝
其實我在外面的面試的時候,上機考她是讓我用VS寫
我當時:???我可以用線上編輯器嗎?(幸好人家說可以XD)
但是我其實不能理解為什麼他們要用VS,不覺得耗效能嗎?
原來這就是你前陣子跟我說GCP不用錢的嗎?
當時你說完我去查有看到BigQuery可是還沒細看哈哈哈
現在有 Visual Studio Code (目前有下載)
Visual Studio Code(簡稱VS Code)是一個由微軟開發,同時支援Windows 、 Linux和macOS等操作系統且開放原始碼的程式碼編輯器[4],它支援測試,並內建了Git 版本控制功能,同時也具有開發環境功能,例如程式碼補全(類似於 IntelliSense)、程式碼片段和程式碼重構等,該編輯器支援用戶個性化組態,例如改變主題顏色、鍵盤捷徑等各種屬性和參數,同時還在編輯器中內建了擴充程式管理的功能。
不會像 VS 那麼膨脹,但VS同時可以使用db,我不確定VSC有沒,他應該是純編輯器,支援多種語言。
對的 ,GCP 有免費額度。
可以直接操作 BigQuery 撈資料速度極快。
// 體驗 Google ML Study Jam 的 QuickLab 的心得 //
原來是這樣 我當時到是沒注意他他是VSC還是VS
只是看到那個長相 我第一時間就是拒絕的XD
原來你有去玩那個!好玩嗎?
我是有看到,但是我想說也許可以下次哈哈哈,畢竟我雖然超前進度寫,卻也只有五天coda QQ
那我之後也去玩玩看~
大部分都沒有用他來寫程式ㄟ
只是裝來運行不同程式語言~~~
可以 run 的起來就沒碰了。
大部分 都用 NotPad 來寫
Python 如果跟機器學習有關的就用 Spyder 。
我最近是用sublime
不過兩個其實只差長相XD
AI我是直接pip install jupyter
以前裝anaconda花超久時間也裝了很多我用不到的
乾脆自己下載需要用到的就好了XD
Bigquery是屬於NoSql 嗎?
From https://chat.openai.com/chat
Google Cloud BigQuery 是一種提供大資料分析服務的雲端平台,它提供了一種用於處理大型資料集的 SQL 類型查詢語言。
BigQuery 使用一種稱為 Standard SQL 的 SQL 語言,這是一種由 ANSI(美國國家標準學會)所採納的標準 SQL 語言。BigQuery 也支援一些額外的語言功能,包括自定義函數、資料結構和查詢擴充功能。
因此,可以說 BigQuery 是一種基於 SQL 的大資料分析服務。