连接到redshift、snowflake、dynamodb和s3的助手类

db-utils的Python项目详细描述


数据库实用程序库

简介

db utils是一个python包,它标准化了与各种类型数据库的交互。db utils是一个模块集合,它降低了查看、提取和分析来自不同来源的数据的门槛,包括:

  • 红移
  • 雪花
  • 博士后
  • mysql
  • sqlserver
  • sqlite
  • 发电机

码头工人

一行命令启动安装了db utils的docker容器。这将在任何运行Docker的系统上运行。Jupyter笔记本将在8888端口打开,只需将终端的URL复制并粘贴到您首选的浏览器中即可。

docker run -p 8888:8888 hannaj06/db-utils:latest

Docker合成

下面是一个例子docker compose.yaml文件。使用此配置,Jupyter笔记本的更改将保留在由<;local_notebooks>;定义的位置。下面是将绑定到docker映像的.databases.conf文件的示例。

docker compose.yaml

version: "2.1"
services:
  dbutils_juypter:
    image: hannaj06/db-utils
    ports:
      - 8888:8888
    volumes:
      - ${HOME}/.databases.conf:/root/.databases.conf
      - <local_notebooks>:/notebooks

.databases.conf

[redshift]host=<redshift_host>user=<user>password=<redshift_password>port=<port>database=<db>[s3]aws_access_key_id=<access_id>aws_secret_access_key=<secret_access>region=<aws_region>default_bucket=<default_bucket>

安装在本地环境中

  • sudo apt get update

所需的系统包:

  • sudo apt get install python3 dev(ubuntu)
  • sudo apt get apt get install g++(ubuntu)
  • sudo apt get install libpq dev(ubuntu)
  • sudo apt get install unixodbc dev(ubuntu)
  • brew安装postgresql(macos)
pip install db_utils

pg_connect类(以前是dbutil)

与postgres或redshift交互的数据库连接类

基本用法:

  • 创建数据库配置文件
  • 下面的示例称为.databases.conf
    [redshift_example]
    host=redshift.example.com
    user=test_user
    password=password
    port=5439
    database=test_db

    >>> from db_utils.pg_connect import pg_connect
    >>>
    >>> db = pg_connect('redshift_example', '.databases.conf')
    >>> db.get_arr_from_query('select * from test', pprint=True)

雪花连接类

与Snowflake交互的数据库连接类

基本用法:

  • 创建数据库配置文件
  • 下面的示例称为.databases.conf
    [snowflake]
    account=abc123.us-east-1
    host=abc123.us-east-1.snowflakecomputing.com
    user=test_user
    password=password
    port=443
    database=test_db
    aws_access_key_id=<key_id>
    aws_secret_access_key=<secret_key>

雪花S3类

snowflake_connect类的子类,用于检索小块中的大型数据集

基本用法:

  • 创建数据库配置文件
  • 下面的示例称为.databases.conf
  • 注意所需的其他字段
    [snowflake]
    account=abc123.us-east-1
    host=abc123.us-east-1.snowflakecomputing.com
    user=test_user
    password=password
    port=443
    database=test_db
    aws_access_key_id=<key_id>
    aws_secret_access_key=<secret_key>
    default_bucket=

示例)将大数据集以块的形式加载到内存中

    >>> from db_utils.snowflake_connect import snowflake_s3
    >>> import os
    >>>
    >>> file_format = '''
    TYPE = CSV
    COMPRESSION = NONE
    '''
    >>>
    >>>
    >>> with snowflake_s3('snowflake', '.databases.conf') as db:
    >>>     db.cursor('SELECT * FROM example_large_table', file_format=file_format, pprint=True)
    >>>
    >>>     while True:
    >>>         file = db.fetch(contents=True)
    >>>
    >>>         if file:
    >>>             for row in file:
    >>>                 print(row)
    >>>
    >>>         else:
    >>>             break


sqlite_connect类

与sqlite交互的数据库连接类


    >>> from db_utils.sqlite_connect import sqlite_connect
    >>>
    >>> db = sqlite_connect('test.db')
    >>> db.get_df_from_query('select * from test_table', pprint=True)

S3 U连接类

用于与S3交互的连接库

基本用法:

  • 将s3节添加到.databases.conf文件(在前面的示例中创建)
docker run -p 8888:8888 hannaj06/db-utils:latest
0

示例)将文件作为stringio对象从s3抓取到内存中

docker run -p 8888:8888 hannaj06/db-utils:latest
1

SQL_服务器连接类

要求:

基本用法:

  • 将SQL Server部分添加到.databases.conf文件(在前面的示例中创建)
docker run -p 8888:8888 hannaj06/db-utils:latest
2

发电机连接类

用于与dynamodb交互的连接库

计时器类

帮助类来计时长时间运行的进程

基本用法:

docker run -p 8888:8888 hannaj06/db-utils:latest
3

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Requestcontextholder在spring 4中具有并发访问权限。IBMWebSphere上的x Web应用程序?   java如何下载、设置和使用Eclipse?   java如何组合这些mysql语句   java JDBC无法连接到openshift上的mysql数据库   如果存在允许正确处理的重载,java对于方便的方法来说是否可行?   使用hibernate序列的java Spring MVC不存在   具有路径的java Selenium ChromeDriver负载扩展问题   读一本书。java中的java文件   退出队列时,Java队列程序结果为空   Java lambda返回带有重复代码问题的列表   java使用意图从其他活动传递数据并在listview中显示   java如何在java中创建JSON输出   java Android:在不破坏或暂停活动的情况下关闭显示   支持Android电视和手机的java多apk   关于Java应用程序测试和调试的一组问题   如何在JavaSE中使用jdbcRealmShiro进行授权   在java中是否有一个无异常检查的URL解析实用程序?   当页面上有多个相同类型的元素时,java会选择一个特定的元素   递归需要帮助发现java代码中的缺陷