跳转到主要内容

sqlalchemy的Amazon Redshift方言

项目描述

Amazon Redshift方言为SQLAlchemy。

安装

该软件包可在PyPI上获得

pip install sqlalchemy-redshift

用法

DSN格式与常规Postgres类似

>>> import sqlalchemy as sa
>>> sa.create_engine('redshift+psycopg2://username@host.amazonaws.com:5439/database')
Engine(redshift+psycopg2://username@host.amazonaws.com:5439/database)

有关该方言支持的Redshift特定功能的详细信息,请参阅RedshiftDDLCompiler文档

运行测试

测试是通过tox运行的,可以使用以下命令运行:

$ tox

但是,除非以下环境变量已设置,否则此命令不会运行集成测试:

  • REDSHIFT_HOST

  • REDSHIFT_PORT

  • REDSHIFT_USERNAME

  • PGPASSWORD(这是redshift实例密码)

  • REDSHIFT_DATABASE

  • REDSHIFT_IAM_ROLE_ARN

请注意,指定的IAM角色需要与redshift集群关联,并且具有创建和删除数据库以及表的正确权限。在shell中导出这些环境变量并运行tox将运行针对真实redshift实例的集成测试。在针对生产实例运行这些测试时要谨慎。

持续集成(CI)

项目CI使用AWS CodePipeline和CloudFormation构建。请参阅ci/文件夹和包含的README.txt,了解启动项目CI的详细信息。

发布

要执行发布,您必须是GitHub和PyPI上的项目管理员。如果您需要该访问权限,请联系维护者。

您需要有一个包含您的PyPI凭证的~/.pypirc,以及以下设置:

[zest.releaser]
create-wheels = yes

要执行发布,请运行以下命令:

python -m venv ~/.virtualenvs/dist
workon dist
pip install -U pip setuptools wheel
pip install -U tox zest.releaser
fullrelease  # follow prompts, use semver ish with versions.

发布器将处理更新包和CHANGES.rst中的版本数据,以及对代码库进行标记并上传到PyPI。

0.8.14 (2023-04-07)

  • 覆盖新上游postgres方法,该方法在redshift上失败(Pull #266

  • 修复非超级用户中断言表的问题(Pull #276

  • 修复1.4 FutureEngine的断言问题(Pull #277

0.8.13 (2023-03-28)

  • 添加spectrum支持(Pull #263

  • 停止支持Python 3.5

0.8.12 (2022-12-08)

  • 修复SQLAlchemy的“supports_statement_cache”(Pull #259

0.8.11 (2022-07-27)

  • 禁用redshift_connector方言语句缓存(Pull #257

0.8.10 (2022-07-21)

  • 支持HLLSKETCH Redshift数据类型(Pull #246

  • 禁用supports_statement_cache(Pull #249

  • 修复文档,lint CI依赖问题(Pull #250

  • 修复redshift_connector方言列编码问题(Pull #255

0.8.9 (2021-12-15)

  • 支持检查Redshift数据类型(Pull #242

0.8.8 (2021-11-03)

  • 删除对Python 2.7的支持;现在需要python >=3.4Pull #234

  • 支持GEOMETRY,SUPER Redshift数据类型(Pull #235

0.8.7 (2021-10-27)

  • 初始支持SQLAlchemy 2.0.x(Pull #237

0.8.6 (2021-09-22)

  • 添加RedshiftDialect_redshift_connector(Pull #232

  • 创建RedshiftDialectMixin类。添加RedshiftDialect_psycopg2cffi。(Pull #231

0.8.5 (2021-08-23)

  • 支持TIMETZ数据类型(Pull #229

  • 修复RelationKey未引用的问题(Pull #228

0.8.4 (2021-07-15)

  • 通过按架构而不是整个数据库获取/缓存元数据来提高反射性能(Pull #223

0.8.3 (2021-07-07)

0.8.2 (2021-01-08)

  • 允许在 COPY 和 UNLOAD 命令中提供多个角色 ARN。这允许第一个角色假定其他角色,具体说明请见 此处

0.8.1 (2020-07-15)

  • 支持 AWS 分区用于 COPY 和 UNLOAD 命令中的基于角色的访问控制。这使得这些命令可以在例如 GovCloud 中使用。

0.8.0 (2020-06-30)

  • 添加选项以级联删除物化视图 (Pull #204)

  • 修复无效的 SQLAlchemy 版本比较 (Pull #206)

0.7.9 (2020-05-29)

  • 支持 SQLAlchemy 1.3.11+ 的修复 (Issue #195)

0.7.8 (2020-05-27)

0.7.7 (2020-02-02)

  • 为 Python 3.9 兼容性从 collections.abc 导入 Iterable (Issue #189)

  • 在 UNLOAD 命令中添加对 Parquet 格式的支持 (Issue #187)

0.7.6 (2020-01-17)

  • 修复 SQLAlchemy >= 1.3.11 中 sortkey 反射的不可哈希类型错误 (Issue #180)

  • 公开从方言导入时支持的类型 (Issue #181)

  • 反射列注释 (Issue #186)

0.7.5 (2019-10-09)

  • 将 psycopg2 包的版本检查扩展到也支持 psycopg2-binary 和 psycopg2cffi (Issue #178)

0.7.4 (2019-10-08)

  • 删除对 psycopg2 的硬依赖,但要求在运行时存在该包 (Issue #165)

  • 从 info 切换到关键字参数在列上用于 SQLAlchemy >= 1.3.0 (Issue #161)

  • 为 redshift 晚绑定视图添加对列信息的支持 (Issue #159)

  • 添加对 UNLOAD 中的 MAXFILESIZE 参数的支持 (Issue #123)

  • 添加对 CREATE LIBRARY 命令的支持。(Issue #124)

  • 添加对 ALTER TABLE APPEND 命令的支持。(Issue #162)

  • 为 UnloadFromSelect 添加对 CSV 格式的支持 (Issue #169)

  • 更新保留词列表(添加“az64”和“language”)(Issue #176)

0.7.3 (2019-01-16)

  • 添加对 COPY 和 UNLOAD 命令中的 REGION 参数的支持。(Issue #90)

0.7.2 (2018-12-11)

  • 更新测试以适应 Redshift 和 SQLAlchemy 的变化 (Issue #140)

  • 为 UnloadFromSelect 命令添加 header 选项 (Issue #156)

  • 在 COPY 命令中添加对 Parquet 和 ORC 文件格式的支持 (Issue #151)

  • 增加对Python 3.7的官方支持(《问题 #153)

  • 通过直接使用系统表,避免在表元数据检索中操作搜索路径(《问题 #147)

0.7.1 (2018-01-17)

  • 修复与SQLAlchemy 1.2.0+不兼容的反射代码(《问题 #138)

0.7.0 (2017-10-03)

  • 不对外部模式中的< cite>search_path进行枚举(《问题 #120)

  • 从get_pk_constraint和get_foreign_keys返回约束名称

  • 使用枚举类型表示格式、压缩和编码。弃用这些参数类型的字符串参数(《问题 #133)

  • 使用过渡ACM证书束更新包含的证书(《问题 #130)

0.6.0 (2017-05-04)

  • 支持COPY和UNLOAD命令中的基于角色的访问控制(《问题 #88)

  • 将最大标识符长度增加到127个字符(《问题 #96)

  • 修复包含点号的表名在反射时引发错误的bug(《问题 #97)

  • 通过缓存表约束信息提高反射性能(《问题 #101)

  • 在COPY命令中支持BZIP2压缩(《问题 #110)

  • 允许测试容忍Redshift中的新默认列编码(《问题 #114)

  • 从Redshift文档中引入一组保留词(《问题 #94)

0.5.0 (2016-04-21)

  • 支持将具有外键的表反射到非公共模式中的表(《问题 #70)

  • 修复了在包含空格或逗号的列名上无法使用DISTKEY和SORTKEY的bug。这是对于像< cite>__table_args__ = {‘redshift_sortkey’: (‘foo, bar’)}这样的命令的破坏性行为变更。之前,它会按照< cite>foo和< cite>bar命名的列排序。现在,它按< cite>foo, bar命名的列排序。(《问题 #74)

0.4.0 (2015-11-17)

  • 将包名更改为< cite>sqlalchemy_redshift,以匹配其他方言的命名约定;现在< cite>redshift_sqlalchemy包会发出< cite>DeprecationWarning并引用< cite>sqlalchemy_redshift。兼容包< cite>redshift_sqlalchemy将在未来的版本中删除。(《问题 #58)

  • 修复了反射表可能对于某些< cite>CREATE TABLE语句具有不正确列顺序的bug,特别是对于具有< cite>IDENTITY约束的列。(《问题 #60)

  • 修复了在表的模式不在当前< cite>search_path中时,反射表可能引发< span class="docutils literal">NoSuchTableError的bug。(《问题 #64)

  • 将python 3.5添加到集成测试的版本列表中。(《问题 #61)

0.3.1 (2015-10-08)

  • 修复了0.3.0版本中引入的CopyCommand中断:(感谢solackerman)。(《问题 #53)

    • 当省略< cite>format时,查询中不附加< cite>FORMAT AS …。这使得默认值与正常redshift查询相同。

    • 修复STATUPDATE作为COPY参数的bug

0.3.0 (2015-09-29)

  • 修复视图支持,使其更符合 SQLAlchemy 标准。 get_view_definition 输出不再包含尾随的分号,视图在作为 Table 对象反射时不再引发异常。(问题 #46

  • 将 RedShiftDDLCompiler 重命名为 RedshiftDDLCompiler。(问题 #43

  • 更新命令(问题 #52

    • 在 CopyCommand 中公开可选的 TRUNCATECOLUMNS。

    • 将所有其他 COPY 参数添加到 CopyCommand 中。

    • 将命令移动到它们自己的模块。

    • 在 CopyCommand 中支持有序列的插入。

0.2.0 (2015-09-04)

  • 使用 SYSDATE 而不是 NOW()。感谢 bouk。 (问题 #15

  • 默认使用 SSL,并使用硬编码的 AWS Redshift CA。 (问题 #20

  • 重构 CopyCommand,包括对指定格式和压缩类型的支持。(问题 #21

  • 显式要求 SQLAlchemy >= 0.9.2 以使用 'dialect_options'。(问题 #13

  • 重构 UnloadFromSelect,包括对指定所有文档化 Redshift 选项的支持。(问题 #27

  • 修复了在 Python 2 上使用 SORTKEY 的 Unicode 问题。(问题 #34

  • 添加了对 Redshift DELETE 语句的支持,这些语句在 WHERE 子句中引用其他表。感谢 haleemur。 (问题 #35

  • 在尝试反射一个不存在的表时引发 NoSuchTableError。(问题 #38

0.1.2 (2015-08-11)

  • 注册 postgresql.visit_rename_table 用于 redshift 的 alembic RenameTable。感谢 bouk。 (问题 #7

0.1.1 (2015-05-20)

  • 将 RedshiftImpl 注册为 alembic 的第三方方言。

0.1.0 (2015-05-11)

  • 第一个可以从 PyPI 安装的 sqlalchemy-redshift 版本

项目详情


下载文件

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

源分布

sqlalchemy-redshift-0.8.14.tar.gz (55.3 kB 查看散列)

上传时间

构建分布

sqlalchemy_redshift-0.8.14-py2.py3-none-any.whl (38.7 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持