如何从Django框架连接到雪花数据库

时间:2019-10-29 15:01:34

标签: django database-connection snowflake-data-warehouse

我是Django的新手,正在尝试显示来自Snowflake数据库的结果。我知道Django有多个内置的数据库后端引擎,例如:django.db.backends.postgresqldjango.db.backends.mysql以及其他受支持的引擎。

不幸的是,我找不到在

中配置数据库后端引擎的正确方法。
  

settings.py

当我输入sqlalchemysnowflake-sqlalchemy作为引擎时,出现此错误:

Try using 'django.db.backends.XXX', where XXX is one of:
'mysql', 'oracle', 'postgresql', 'sqlite3'

我的猜测是和sqlalchemy一起使用,因为这是我通常用于连接Django外部的Snowflake的功能,但是由于某些原因,它无法正常工作。

我希望对此有任何指导。

2 个答案:

答案 0 :(得分:0)

please install snowflake-connector-python .E.g. below
pip3 install snowflake-connector-python==1.8.1
Here is the code to connect from SQL Alchemy.

=====================================================================
#!/usr/bin/env python
from snowflake.sqlalchemy import URL
from sqlalchemy import create_engine

engine = create_engine(URL(
    account = 'XXXX',
    user = 'XXXX',
    password = 'XXXXX',
    database = 'XXXXXX',
    schema = 'XXXXXX',
    warehouse = 'XXXXX',
    role='XXXXXXXX',
))




try:
    connection = engine.connect()
    connection.execute(
        "CREATE OR REPLACE TABLE test_async(c1 TIMESTAMP_NTZ,c2 VARIANT)",_no_results=True)



finally:
    connection.close()
    engine.dispose()

=========================================================================

答案 1 :(得分:0)

您应该安装一个自定义的 Snowflake 引擎,如下所示。请注意,截至今天,这些都不完整。不过,通过完成 Django 文件来实现缺失的 operations.py 功能应该不难。

-> https://github.com/pricemoov/django-snowflake

-> https://pypi.org/project/django-snowflake-backend/