问题标签 [crate]
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 - 是否可以使用来自两个表的形状发出空间连接?
我希望能够运行如下查询:
但我得到:
示例架构:
尝试的原因wkt string
是由于文档使用了 WKT literals。此外,由于我们的实际实现是可变数量的几何图形,我们可能会针对这些几何图形进行连接并且geo_shape
不能存在于对象中,因此我们希望 WKT 可以与连接一起使用。
更新 1(根据增强 Jacob 的回答)尝试使用 geo_shape join geo_shape 与此模式:
上面的查询产生了一个不同的错误:
而且,虽然错误并不理想,但我不希望它能够正常工作,因为文档状态:
笔记
一个 MATCH 谓词不能组合连接的两个关系的列。
更新 2使用 geo_shape join geo_shape,match
不起作用但within
可以工作,但是,作为“精确”查询,性能使其几乎无法使用,至少在我们的 2.4B 行中是这样。
sql - 如何从 sql 对象(CRATE DB)中查询项目
我正在尝试使用新的 crate db。链接 我有一个包含“基础设施”和“网络”对象的表:
我需要从“infrastructure”中查询 os_name 并从网络数组中查询 hosting_id。我怎么做?我试图谷歌找到正确的语法,但没有成功。我想要这样的东西:
和
sqoop - Sqoop 从 HDFS 导出到 Crate.io 数据库,没有错误/输出
我正在尝试将我的 hdfs 导出到 Crate.io DB,并且我正在使用 Sqoop 来执行此操作。我已经导入了所需的 .jar 文件,我的 sqoop 文件如下所示:
我的 sqoop 操作运行没有任何错误,但是我的 hdfs 没有任何内容插入到 crate db 中。我试过在 IP 中提到“doc”,但仍然没有成功。
并交替使用
我已经能够通过 Python 库将内容插入到 crate 中,但不能通过 Sqoop。有什么想法我可能在这里做错了吗?
authentication - 使用 curl 和基本访问身份验证创建 SQL 查询
从crate.io 文档中,我被告知可以像这样执行 SQL 查询:
curl -sSXPOST 'CLUSTER_IP:4200/_sql?pretty' -d '{"stmt":"select name from sys.cluster"}'
我尝试连接的数据库需要用户名和密码:
如何将此身份验证构建到 curl 调用中?我尝试了几种我在网上找到的东西,但都没有成功。我一直看到的错误如下所示:
crate - 如官方网站所述,如何调整 cratedb 以每秒获得 40000 次插入
我正在对 cratedb 进行基准测试,每条记录有 40 列,记录大小在 300 字节到 1kb 之间变化。
我只能在单线程上每秒插入 500 次。
将 cratedb 1.0.1 与 python 客户端一起使用。具有 16 个 CPU 和 32GB RAM 的机器。
请帮助我如何提高性能。以及在什么条件下我们可以获得官网中提到的每秒 40,000 次插入。
提前致谢
crate - 板条箱:为什么要求 PRIMARY KEY 列出现在 PARTITIONED BY 子句中?
您能帮我理解我在本文档中阅读的内容吗? https://crate.io/docs/reference/sql/partitioned_tables.html
在这些示例表中,列id long
不是primary_key
; 实际上,id
这里不能是主键,因为如下所述“如果设置了主键,则它必须存在于PARTITION BY
子句中”
在我的应用程序中,我历来有一个primary key
on id string NOT NULL
,但现在我想在这个表上添加分区,在生成的日期列上,就像在示例中一样partition_date timestamp GENERATED ALWAYS AS date_trunc('day', created_at)
。我已经读过,对日期列进行分区将有助于提高按时间段范围内的查询速度(例如,计算今天的所有记录,只会命中今天的分区),并帮助我归档较旧的数据帧(例如 > 180 天的任何数据) ),但我不想失去单 PK 查找的性能。
所以,既然我做不到PARTITIONED BY (partition_date)
,我最好……
a) 删除主键约束id
?我很紧张这会影响我的单行查找性能!在这种情况下,PK 必须在分区键中是有意义的,因为理想情况下查找WHERE id = "abc-123"
应该只需要命中单个节点。
或者
b) 使用两列作为分区键,比如PARTITIONED BY (id, partition_date)
-- 这看起来很奇怪,因为本能地,我想假设它id
具有高基数并且对于分区列来说是一个糟糕的选择,而“日”或“月”会更好,如您的文档中的示例所示。在这种情况下,我的 PK 查找是否命中了每个分区,或者它是否确切地知道要去哪里?如果我运行仅限于今天的聚合查询,它会命中每个分区还是只命中保存今天数据的分区?
sql - crate.io SQL 嵌套选择中的错误
我正在从 crate.io 管理控制台执行此查询,但它失败并出现UnsupportedOperationException
错误:
Cannot create plan for: io.crate.analyze.QueriedSelectRelation
这是查询:
如果我删除最后一行(即 WHERE 语句),它将运行。这也运行得很好:
python - 在对象数组中插入对象/字典(Crate,python)
我在crate表中有一个对象数组, 当我执行 SELECT 和 fetchall() 命令时,它给了我以下字典列表:
之后,我想更改这些字典之一的值并使用 sql UPDATE 更新数组。在硬代码中,它应该如下所示:
这意味着我必须解析这本字典:
变成这样的字符串:
没有 " 键,= 而不是 : 。我怎么能在 python 中做到这一点?
sql - 在 CrateDB 中存储性能数据的最佳实践是什么?
我的应用程序将性能时间序列数据存储在 CrateDB 中,为了正确设置,我有几个问题,因为它每天将有大约 72M 条记录,并且应该可以适当扩展:)。我的目标是使用 Grafana 可视化生成的数据,目前我想到了以下结构:
重要的位是主机/服务名称、指标的名称和值以及时间戳。这也将是替代模式:
那么哪一种是存储数据的首选方式呢?我还需要分区吗?我的聚合通常显示过去 24 小时,很少显示上个月...
谢谢!
levenshtein-distance - crate.io FULLTEXT SEARCH 模糊性
我想使用 Levenshtein,我正在寻找一些例子。我已经阅读了文档,但我不知道如何实现它。我尝试构建自己的分析器,但每次使用它都会崩溃。
这是我遵循的文档: https ://crate.io/docs/reference/sql/fulltext.html
示例表:
我的目标是搜索沃尔玛并返回沃尔玛。