snowflake-cloud-data-platform - Snowflake 中的值对:变体还是对象?
问题描述
我们希望将值对存储为雪花中的半结构化数据类型。
看起来我们可以使用 OBJECT 或 VARIANT 数据类型。
该文档暗示将 OBJECT 用于值对,但不太清楚它是否是比变体“更好”的选择......或者我错过了它(很可能)
那么... 对象还是变体?
更新:到目前为止,我们已经开始使用 JSON 填充的 OBJECT 类型的列。但是,我们的 JSON 只是键名永远不会为 NULL 的值对。
解决方案
在不知道要在表/列中存储哪种数据的情况下,很难回答。您可以轻松地将 OBJECT 存储在 VARIANT 列中,但不能相反。存储 OBJECT 时,必须确保密钥不为空。(“OBJECTS:用于表示键值对的集合,其中key为非空字符串,value为VARIANT类型的值。Snowflake目前不支持显式类型的对象。”)更多信息可以在这里找到:
https://docs.snowflake.net/manuals/sql-reference/data-types-semistructured.html https://docs.snowflake.net/manuals/user-guide/querying-semistructured.html
如果您想将 JSON 存储在您的变体列中,您可以直接查询它或使用 FLATTEN 命令将其呈现为更像表格。
推荐阅读
- regex - 根据 Postgres 中列中的特定模式连接列值
- javascript - 使用 JEST 测试使用 fs 读取的文件
- c# - 如何动态更改文本颜色取决于使用 xaml for UWP 应用程序的值
- laravel-nova - Laravel Nova 工具 - 向 Vue 发送元数据
- java - 有条件地将项目添加到 HashMap 的有效方法
- dart - Dart - 从列表中获取最近(更大)的值?
- postgresql - Postgresql 启动错误:“无法刷新脏数据:输入/输出错误”
- javascript - 显示国家/地区城市名称并在两个字段中仅显示国家名称
- vue.js - 如何在带有 vue-json-schema-form 的 json-schema 中使用 $ref?
- flutter - Flutter 这个函数的返回类型是 'Future
',但不以 return 语句结尾