DLT 是一个开源的 python 原生可扩展数据加载框架,不需要任何 devops 工作即可运行。
项目描述
快速入门指南:数据加载工具 (DLT)
TL;DR:本指南向您展示如何使用 DLT 将 JSON 文档加载到 Google BigQuery 中。
如果您可以对此快速入门进行改进,请在此处打开拉取请求。
抓住演示
克隆示例存储库:
git clone https://github.com/scale-vector/dlt-quickstart-example.git
输入目录:
cd dlt-quickstart-example
在您喜欢的 IDE/文本编辑器中打开文件:
data.json
(即您将加载的 JSON 文档)credentials.json
(即包含我们的演示 Google BigQuery 仓库的凭据)quickstart.py
(即使用 DLT 的脚本)
设置虚拟环境
确保您使用的是 Python 3.8 或 3.9:
python3 --version
创建一个新的虚拟环境:
python3 -m venv ./env
激活虚拟环境:
source ./env/bin/activate
安装 DLT 并支持目标数据仓库
使用 pip 安装 DLT:
pip3 install -U python-dlt
安装对 Google BigQuery 的支持:
pip3 install -U python-dlt[gcp]
理解代码
-
配置分布式账本技术
-
创建 DLT 管道
-
从 JSON 文档加载数据
-
将数据传递到 DLT 管道
-
使用 DLT 加载数据
运行代码
在文件夹中运行快速启动脚本/examples
:
python3 quickstart.py
检查schema.yml
脚本或生成的文件已打印的内容:
vim schema.yml
查看查询 Google BigQuery 表的结果:
json_doc
桌子
SELECT * FROM `{schema_prefix}_example.json_doc`
{ "name": "Ana", "age": "30", "id": "456", "_dlt_load_id": "1654787700.406905", "_dlt_id": "5b018c1ba3364279a0ca1a231fbd8d90"}
{ "name": "Bob", "age": "30", "id": "455", "_dlt_load_id": "1654787700.406905", "_dlt_id": "afc8506472a14a529bf3e6ebba3e0a9e"}
json_doc__children
桌子
SELECT * FROM `{schema_prefix}_example.json_doc__children` LIMIT 1000
# {"name": "Bill", "id": "625", "_dlt_parent_id": "5b018c1ba3364279a0ca1a231fbd8d90", "_dlt_list_idx": "0", "_dlt_root_id": "5b018c1ba3364279a0ca1a231fbd8d90",
# "_dlt_id": "7993452627a98814cc7091f2c51faf5c"}
# {"name": "Bill", "id": "625", "_dlt_parent_id": "afc8506472a14a529bf3e6ebba3e0a9e", "_dlt_list_idx": "0", "_dlt_root_id": "afc8506472a14a529bf3e6ebba3e0a9e",
# "_dlt_id": "9a2fd144227e70e3aa09467e2358f934"}
# {"name": "Dave", "id": "621", "_dlt_parent_id": "afc8506472a14a529bf3e6ebba3e0a9e", "_dlt_list_idx": "1", "_dlt_root_id": "afc8506472a14a529bf3e6ebba3e0a9e",
# "_dlt_id": "28002ed6792470ea8caf2d6b6393b4f9"}
# {"name": "Elli", "id": "591", "_dlt_parent_id": "5b018c1ba3364279a0ca1a231fbd8d90", "_dlt_list_idx": "1", "_dlt_root_id": "5b018c1ba3364279a0ca1a231fbd8d90",
# "_dlt_id": "d18172353fba1a492c739a7789a786cf"}
在自动生成的键上加入上面的两个表(即p._record_hash = c._parent_hash
)
select p.name, p.age, p.id as parent_id,
c.name as child_name, c.id as child_id, c._dlt_list_idx as child_order_in_list
from `{schema_prefix}_example.json_doc` as p
left join `{schema_prefix}_example.json_doc__children` as c
on p._dlt_id = c._dlt_parent_id
# { "name": "Ana", "age": "30", "parent_id": "456", "child_name": "Bill", "child_id": "625", "child_order_in_list": "0"}
# { "name": "Ana", "age": "30", "parent_id": "456", "child_name": "Elli", "child_id": "591", "child_order_in_list": "1"}
# { "name": "Bob", "age": "30", "parent_id": "455", "child_name": "Bill", "child_id": "625", "child_order_in_list": "0"}
# { "name": "Bob", "age": "30", "parent_id": "455", "child_name": "Dave", "child_id": "621", "child_order_in_list": "1"}
下一步
-
替换
data.json
为您要探索的数据 -
检查推断的类型是否正确
schema.yml
-
设置您自己的 Google BigQuery 仓库(并替换凭据)
-
使用这个新的干净的暂存层作为语义层/分析模型的起点(例如使用 dbt)
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
python-dlt-0.1.0rc14.tar.gz
(413.1 kB
查看哈希)
内置分布
python_dlt-0.1.0rc14-py3-none-any.whl
(475.2 kB
查看哈希)
关
python_dlt -0.1.0rc14-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2bfd345642875bde061ac89f24bfc0a2c9c98172c876358affb9a172b2059863 |
|
MD5 | a919340feed6a846252c6c4340d91d4e |
|
布莱克2-256 | 4425726a9bc7fac8e86df050b6a1d4660259dcbaad0673285f20022e0e09524a |