山顶公立学校雪花仓库
spswarehouse-hs-test的Python项目详细描述
spshwarehouse
先决条件
- 蟒蛇3
- Jupyter笔记本
安装
- 要安装,请运行:
pip install spshwarehouse
- 这可以在「开始」菜单中的"蟒蛇提示"中完成。
- 通过运行:
pip show pip grep"location:"cut-d""-f2来定位安装目录
- 如果这不起作用,请运行
pip show pip
,然后查看行"location:"。
- 如果这不起作用,请运行
本自述文件中提到的文件位于<;install directory>;/spshwarehouse/
设置依赖项
- 切换到
spshwarehouse
目录cd<;安装目录>;\spshwarehouse
- anaconda3的默认值是
cd anaconda3\lib\site packages\spshwarehouse
- 运行:
pip install-r requirements.txt
您可以退出anaconda提示符;下一步在文件资源管理器中更容易完成。
设置凭据
安装此模块的默认目录是users\<;your name>;\anaconda3\lib\site packages\spshwarehouse
。您的凭证位于spshwarehouse
子目录中。
- 将
credentials.py.template
文件复制到credentials.py
雪花
这允许您访问雪花数据仓库。
- 在引号之间填写您的雪花
用户
和
密码
凭证。
谷歌表格
这允许您访问您的谷歌电子表格。
- 从您的团队获取Google服务帐户的
私钥
。 - 在
credentials.py
中,在google_config
和service account
下,在引号之间填写private_key
。 - 当您第一次
import
theGooglesheets
模块时,服务帐户的电子邮件地址将被打印出来,您将使用该电子邮件地址共享您想要访问的任何电子表格。
用法
雪花
您的雪花连接是在credentials.py
中配置的(请参见上文)。
雪花访问在中由warehouse
实现。你可以:
- 使用
read_sql()
读取数据
- 使用
reflect_table()
反射表格
- 使用
execute()
运行SQL命令
表列名选项卡完成
当您运行import spshwarehouse
时,将自动设置表和列名的某些制表符补全。
格式为:
spswarehouse.<schema_name>.<table name>.c_<column name>
为了减少加载时间,当导入spshwarehouse
时,只为少数模式自动设置制表符完成。
如果您使用的架构不是制表符完成,则可以手动导入它。
例如,要为架构启用制表符竞争,请运行:
from spswarehouse.table_names import *
initialize_schema_object(SchoolMint)
schoolmint = SchoolMint()
上传数据
表实用程序
模块实现将数据上载到雪花仓库。
您可以从中上载的数据源是:
- pandas.dataframe
dataframe
- csv文件
csv文件名
- 谷歌工作表
两种主要方法是create_table_stmt
和upload_to_warehouse
。两者都支持以上数据源作为可选参数:
数据帧
csv文件名
谷歌工作表
在Jupyter笔记本中,打开雪花上传示例.ipynb
以获取基本示例。
列类型
create_table_stmt()
将在给定数据帧、csv文件或google工作表时尝试猜测列类型。
如果要显式命名和键入列ns,您可以传入列
参数。
有关类型的最佳实践,请参阅guess\u col\u types()的文档。
谷歌工作表
确保首先设置了credentials.py
并将电子表格与google服务帐户电子邮件共享。您也可以通过运行获得电子邮件:
GoogleSheets.get_google_service_account_email()
信息团队服务帐户电子邮件是jupyter sheets@sps warehouse.iam.gserviceaccount.com
googlesheets
实际上是gspread.client的一个实例,因此您可以使用
gspread
python api.
访问数据
在Jupyter笔记本中,打开并运行googlesheets example.ipynb
以获取有关加载电子表格和将工作表数据读取到pandas.dataframe
中的基本示例
上传至仓库
从Jupyter Notebook打开并运行雪花上传示例.ipynb
以获取将谷歌工作表数据上传到雪花仓库的基本示例。
列类型
开发人员注释
谷歌服务帐户密钥
这允许我们使用google sheets api来访问表数据。只需执行一次并添加到credentials.py.template
- 使用现有的google developer项目,或创建一个新项目:https://console.cloud.google.com rel="nofollow">https://console.cloud.google.com
- 启用google sheets api
- 转到项目的"API&Services",然后转到"Libraries"。
- 搜索"google sheets"并选择结果。
- 单击"启用"。
- 创建OAuth客户端凭据
- 转到项目的API&Services,然后转到Credentials
- 在"创建凭据"下,选择"服务帐户密钥"
- 选择一个现有的服务帐户或创建一个新帐户以将此密钥与之关联。
- 创建密钥并将其作为json文件下载。
- 将oauth客户机凭据复制到
服务帐户下的
google\u client
中的credentials.py.template
- 删除私钥并在签入
credentials.template.py
时只留下引号- 您需要安全地分发私钥,以便将其添加到
credentials.py
- 删除私钥并在签入
PYPI
我们使用pypi分发spshwarehouse
模块,并使用测试pypi进行测试。
设置
创建pypi并测试pypi帐户以测试和上载包。
包装
有关PYPI打包的概述和介绍,请参见https://packaging.python.org/tutorials/packaging projects/。
spshwarehouse的详细信息
- 只构建
sdist
包。否则,credentials.py
和潜在的密码将在二进制分发中分发。 - 如果需要包含非python文件,请将它们添加到
manifest.in
测试
- 在
setup.py中更新版本号
- 创建包:
python setup.py sdist
- 上传到测试pypi:
python-m tween upload——存储库url https://test.pypi.org/legacy/dist/*
- 在本地计算机上安装以进行测试:
pip install-i https://test.pypi.org/simple/
推出新套餐
确保所有更改都签入github存储库并在此之前,您的本地存储库是最新的。
步骤与上一节相同,省略了test.pypi
url。