A package for logging data to Google BigQuery
Project description
Cameo BigQuery Logger
這個套件提供了一個用於將使用者操作記錄插入到Google BigQuery的工具。它包括兩個主要的類:UserData
和BigQueryLogger
。
安裝
首先,確保你已經安裝了所需的Python包。你可以使用以下命令來安裝:
pip install -r requirements.txt
環境變數
在使用這個套件之前,你需要設置一些環境變數。你可以在項目根目錄下創建一個.env
文件,並添加以下內容:
GOOGLE_APPLICATION_CREDENTIALS=path/to/your/service/account/key.json
KEY=your_fernet_key
DATASET_ID=your_dataset_id
TABLE_NAME=your_table_name
GOOGLE_APPLICATION_CREDENTIALS
:Google Cloud服務帳戶的憑證文件路徑。KEY
:用於加密的Fernet密鑰。DATASET_ID
:BigQuery數據集ID。TABLE_NAME
:BigQuery表名。
使用方法
1. 初始化BigQueryLogger
from cameo_big_query_log.cameo_big_query_log import BigQueryLogger
logger = BigQueryLogger()
2. 插入數據到BigQuery表
首先,創建一個包含使用者數據的字典(必填欄位已標註):
user_data = {
"user_name": "John Doe", # 必填
"user_department": "Engineering", # 必填,default='unknown'
"domain_name": "example.com", # 必填,default='unknown'
"session_id": "123456", # 必填
"action_type": "login", # 必填,選項有login、logout、
"action_details": '{"detail": "value"}', # 必填
"resource_id": None, # 必填,資源的唯一標識(如文件名稱)
"developer": "cameo" # 必填,開發者姓名
}
然後,使用insert_data_to_table
方法將數據插入到BigQuery表中:
logger.insert_data_to_table(user_data)
類和方法
UserData
UserData
類用於驗證和存儲使用者數據。它使用Pydantic進行數據驗證。
BigQueryLogger
BigQueryLogger
類用於與Google BigQuery進行交互。它包括以下方法:
__init__
:初始化BigQuery客戶端和加密套件。generate_key
:生成一個新的Fernet密鑰。get_local_ip
:獲取本地IP地址。insert_data_to_table
:將使用者數據插入到BigQuery表中。create_table
:創建一個新的BigQuery表。
測試
你可以使用pytest
來運行測試。確保你已經安裝了pytest
:
pip install pytest
然後運行測試:
pytest
這將運行位於tests/test_cameo_big_query_log.py
中的測試腳本。
貢獻
歡迎提交問題和請求功能。如果你想貢獻代碼,請先fork這個倉庫,創建一個新的分支,提交你的更改,然後創建一個pull request。
授權
這個項目使用MIT許可證。詳情請參閱LICENSE文件。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file cameo_big_query_log-0.1.1.tar.gz
.
File metadata
- Download URL: cameo_big_query_log-0.1.1.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9c7169336fd3bb04f434579ecb58ce734894991dee7461577e149ad48343be0 |
|
MD5 | e7f99c2cc67b360ad2a22a1a7f305895 |
|
BLAKE2b-256 | 2af750535ffc324d4cf74add8c1a4d849f8fb148cc68835684921d1c82716ff4 |