问题标签 [snowflake-connector]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 使用数据构建工具(dbt)和雪花,如何检查列是否为日期字段?
如果我的解释不是那么好,我是一名初级人员,所以很抱歉。
我在 dbt 上创建了一个宏来添加一个默认行,其中包含基于数据类型定义的值或默认值。
我想要实现的是检查列是否是数据类型date
字段,然后它将返回{{ date_vi }}
我定义为的默认变量'1900-00-00'
,但我收到一个错误:
dbt.adapters.snowflake.column.SnowflakeColumn object' has no attribute 'isdate
这告诉我没有is_date()
令人困惑的地方,因为is_date()
通常在雪花上工作。
我现在注意到 dbt 文档:
https://docs.getdbt.com/reference/dbt-classes#column
以及 github 上的雪花源代码:
https://github.com/dbt-labs/dbt-snowflake/blob/main/dbt/adapters/snowflake/column.py
那 is_date() 实际上不适用于雪花适配器,我试图开始工作的代码是:{% elif col.is_date() %}{{ date_vl }}
所以我想知道检查列是否为日期的最佳方法是datatype
什么?希望我解释得足够充分,因为我还是个新手。
干杯。
python - 覆盖 snowflake-connector-python 输出类型处理程序
我有一个 sql 查询雪花中类型为 NUMBER(38,18) 的列。当我使用以下执行查询时
数据框中该列的类型是十进制。十进制。有没有办法覆盖,使其每次都浮动。我不想在 SQL 中进行任何转换。
我在 snowflake-connector-python (src/snowflake/connector/converter.py) 的代码中找到了这个函数
版本 - 2.7.2
python - 雪花 Python 连接器的动态参数数量
我想从 Python 执行 Snowflake 存储过程,我一直在使用 snowflake-connector-python==2.7.2。
我面临的问题是我有可变数量的参数要发送到存储过程。所以,我有一个带参数的字典:
我有一个雪花存储过程:
所以,我的问题是:
- 有没有办法将字典键映射到存储过程参数?
- 我怎样才能使它动态化,以便当我有 5 个键的 dict 和 5 个参数的存储过程时它仍然可以工作?
- 如何正确映射存储过程数据类型?
apache-kafka - 如何在 Kafka 集群中创建和放置 .env 文件,以便 Kafka 连接器配置可以引用它
我正在尝试使用本教程的 kafka 到雪花部分创建一个从 kafka 到雪花的 kafka 连接器。
这是我开始使用的连接配置的完整示例,包含在 curl 请求中。如您所见,它${file:/data/credentials.properties:ENV_VAR_NAME}
多次引用以获取 envar:
我的问题是:如何将 .env 文件放在集群内的“data/credentials.properties”中,以便我的连接配置能够使用“${...} ” 语法类似于示例连接配置 json 的这一行:
snowflake-cloud-data-platform - 如何在 Snowflake 上连接 Dbeaver (DUO Push)
我在雪花中使用 Duo Mobile 进行身份验证。我在 Dbeaver 中输入了用户名和密码以及仓库详细信息。但我不断收到错误
“您的 MFA 未启用 DUO PUSH。提供密码作为连接字符串的一部分”。
这里它说添加“passcodeInPassword = on”。
我需要在哪里添加这个?
jupyter-notebook - 雪花、Python/Jupyter 分析
我是 Snowflake 的新手,并且运行查询以获取几天的数据 - 这将返回超过 2 亿行,并且需要几天时间。我尝试在 Jupyter 中运行相同的查询 - 并且内核在查询结束之前重新启动/死亡。即使它进入了 Jupyter——我怀疑我可以在任何合理的时间线上分析数据(但也许使用 dask?)。
我不确定从哪里开始——我正在尝试检查数据中的缺失值,我的第一直觉是使用 Jupyter——但我现在迷路了。
我的下一个想法是留在 Snowflake 中 - 并使用 case 语句检查那里的列(例如 sum(case when column_value = '' then 1 else 0 end) as number_missing_values
有没有人有任何想法/方向我可以尝试 - 或者知道我是否做错了什么?谢谢!
python - 253006:文件不存在:['/Users/oscar/Desktop/data.txt']
尝试将文件加载到表上时收到间歇性雪花 python 连接器错误。
在以下代码中给出错误:
exe.execute("""PUT 'file:///Users/oscar/Desktop/data.txt'
'@"db"."schema".%"table"/ui4654116544'""")
node.js - 在雪花 SDK 中使用“rowStreamHighWaterMark”背压雪花?
我正在使用snowflake-sdk和snowflake-promise流式传输结果(以避免在内存中加载太多对象)。
对于每个流式传输的行,我想处理接收到的信息(执行回写的类似 ETL 的作业)。我的代码非常基本,类似于这个简单的雪花承诺示例。
我目前的问题是.on('data', ...)
调用的频率超出了我的处理能力。(我的类似 ETL 的工作跟不上接收到的行,我的数据库连接池执行回写操作已经用尽)。
我尝试将rowStreamHighWaterMark设置为各种值(1、10 [默认]、100、1000、2000 和 4000)以减慢/ backpressure流的速度。可读但不幸的是,它没有改变任何东西。
我错过了什么 ?如何更好地控制何时使用读取数据?
snowflake-cloud-data-platform - 基于架构跨雪花帐户克隆数据
我有两个雪花帐户。我想将数据从一个帐户的数据库中的一些模式克隆到另一个帐户中的数据库模式。
Account1:https ://account1.us-east-1.snowflakecomputing.com 数据库:DB_ONE SCHEMAS:A1SCHEMA1、A1SCHEMA2、A1SCHEMA3、A1SCHEMA4(有外部表)
Account2:https ://account2.us-east-1.snowflakecomputing.com 数据库:DB_TWO SCHEMAS:A2SCHEMA1、A2SCHEMA3、A2SCHEMA4(有外部表)
两个帐户都在同一个组织下。
我想将 DB_ONE 的 A1SCHEMA1 从 account1 克隆到 account2 中 DB_TWO 的 A2SCHEMA1。
可能吗?如果你,有什么指示。我找到了数据库级别的信息,但没有找到架构级别的信息。另外,我需要根据需要从克隆中刷新数据。
我可以将 account1 中的 DB_ONE 的 A1SCHEMA4 克隆到 account2 中 DB_TWO 的 A2SCHEMA4 吗?因为它有外部表。
注意:DB_ONE 不是从共享创建的。基本上我想从 prod 获取数据到较低的 env。复制或克隆,但我也想刷新它。
snowflake-cloud-data-platform - 雪花角色重新设计
我需要在雪花中构建角色并需要建议。
目前有两个数据库:basedb 和computedb。basedb 是我们加载数据的数据库,数据没有被转换。更像是一个着陆区。
computedb 是发生转换的地方,有几十个职能团队,每个团队都有一个模式,比如内容团队有内容模式,并且可以有一个可以在多个团队之间共享的模式。
computeb 中的所有团队/模式都可以从 basedb 读取,但是有些团队正在从其他团队的转换模式中读取数据,这就是我需要帮助的地方。
所有自定义角色都在 sysadmin 之下,我们每个模式都有一个读写角色。
现在分析模式也希望从销售和营销模式中读取。
是否应该只将销售和营销的读取权限授予分析?如图所示(问题是团队将来可能需要从转换中的其他模式访问更多模式)
或者我们应该为computedb 中需要访问其他computedb 架构的所有架构创建一个新角色?
接受更多建议。