Skip to main content

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]

理解代码

  1. 配置分布式账本技术

  2. 创建 DLT 管道

  3. 从 JSON 文档加载数据

  4. 将数据传递到 DLT 管道

  5. 使用 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"}

下一步

  1. 替换data.json为您要探索的数据

  2. 检查推断的类型是否正确schema.yml

  3. 设置您自己的 Google BigQuery 仓库(并替换凭据)

  4. 使用这个新的干净的暂存层作为语义层/分析模型的起点(例如使用 dbt)

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

python-dlt-0.1.0rc14.tar.gz (413.1 kB 查看哈希

已上传 source

内置分布

python_dlt-0.1.0rc14-py3-none-any.whl (475.2 kB 查看哈希

已上传 py3