我想使用一个包含字符串和数组的结构。字符串表示服务的名称,而数组列出执行该服务的公司ID。
我知道我可以创建并插入结构外观,以便:
CREATE TABLE struct_test
(
property_id INT,
service STRUCT<
type: STRING
,provider: ARRAY<INT>
>
);
INSERT INTO TABLE struct_test
SELECT 989, NAMED_STRUCT('type','Cleaning','provider', ARRAY(587, 887)) AS address
FROM tmp LIMIT 1;
这给了我以下信息:
>{"type":"Cleaning","provider":[587,887]}
但是,我想说明同一属性上的多个服务类型。我的电脑里怎么会有不止一种类型 service
结构?
理想情况下,我希望实现以下类似的目标:
{“type”:“cleaning”,“provider”:[587887]},{“type”:“pricing”,“provider”:[932]},{“type”:“security”,“provider”:[187577946]}
通过这种方式,我可以在列中存储多个服务以及提供该服务的提供者。这个模型可以用struct实现吗?
1条答案
按热度按时间czfnxgou1#
这可以通过
array<struct<type: STRING, provider: ARRAY<INT>>>
创建表:插入数据:
检查数据:
结果:
如果要在select中收集结构数组,而不是硬编码的值,请参见以下答案:https://stackoverflow.com/a/48175749/2700344
对于如此复杂的数据类型,您肯定需要brickhouse库