问题标签 [cratedb]

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.

0 投票
4 回答
177 浏览

sql - 如何编写 cratedb 迁移脚本?迁移脚本不起作用

我们有一个数据库,其中有一个名为 Students 的表,其中包含 id、name、age、school 列。

现在我想编写一个迁移脚本来将 3 列(假设我有数百万条记录)从 Student 表复制到 New_students 表。

下面是我编写的示例脚本。它抛出一个错误

在 crateDb Admin UI 中执行上述操作时,出现以下错误

上述语句在单独执行时有效。

问题:

  1. 为什么上面的多个语句不起作用,但单独键入时起作用?2.我们如何将数据从表列复制到另一个新表。假设我有数百万条记录,我如何更有效地做到这一点?
0 投票
1 回答
43 浏览

cratedb - 内部数据库逻辑/操作对结果进行分组/压缩

我有一个 CrateDB 表,用于存储邮政编码的各种信息。它包含大约 30k 个邮政编码,我需要我的查询一次返回所有邮政编码的某些分析信息。我知道这通常是不可行的,但由于我只需要球场信息并且许多邮政编码是连续的,我认为优化是可能的。

例如,如果我想分析人口,这样的分组结果对我有用:

上面的人口和群体是假的,但这个想法应该成立。基本上,将已分析的类别分组到桶中,将邮政编码分配给正确的桶,并通过使用范围表示进一步减小大小。我可以满足预定义数量的组或由请求/查询本身定义的组桶。这有望将响应从对于单个查询来说太大的响应减少到可管理的响应。

是否可以编写一个 cratedb 函数来执行类似的操作,以避免在不同的服务/容器/虚拟机上完成此分组而导致带宽问题?

0 投票
1 回答
1390 浏览

java - 搜索/插入查询 jdbc 中的反斜杠 (\) 和引号 (')

我正在使用带有 cratedb 的 JDBC(它几乎使用 PSQL 协议)。碰巧当我尝试执行这样的查询时

它给了我解析器异常。

然后在调试时我发现jdbc的Parser.java中的这段代码

正在引起问题。根据我的理解,他们破坏了 char 数组中的值,并且在语句的末尾'\''与我的冲突。\

我知道或尝试过的

  • 我读到人们要求使用,prepared statement因为插入发生了同样的问题,但我的查询是动态的,所以我不能使用它

  • 我们不能说不可能像dhruv\在数据库中那样插入值。我们可以通过控制台或json文件直接插入(顺便说一句,java很难,因为我们需要转义单个\并且db\不是转义字符)

  • 最新版本的 Cratedb 具有带有 C-Style Escape 的 String Literals ,但只是为了使用此功能,我无法更新我的整个数据库

那么有没有办法解决它?

++更新

还发现了类似的查询

由于同样的原因也不会工作。

++更多更新

  • 所以据我了解select * from workkards where w_number='dhruv\\',在运行时将其视为select * from workkards where w_number='dhruv\'
    • 'dhruv\',现在反斜杠正在转义引号,所以引号被转义
    • 所以 crate jdbc parser 说 unterminated string since 'is escaped

我正在工作的方式

  • 我用反斜杠和空格替换\java代码,用户看不到任何区别,因为空格不可见\
  • 有点像上面,似乎可以找到,因为我可以插入值,但是有一个问题
  • 该值存储在带有尾随空格的数据库中,因此在搜索该值时存在问题
  • 我们可以将相同的逻辑应用于搜索查询,这样它就可以工作了
  • 仍然存在的一个问题是,如果用户输入类似的值怎么办'dh\''ruv'
0 投票
1 回答
321 浏览

crate - Crate.io Copy From 0 行受影响

我有一个 Crate.io 数据库,在 Windows Server 2012 下运行 CrateDB 版本 3.2.7。(我知道它不是最好的,它现在仅用于测试目的,不会是最终设置。)

我已经创建了表 dbo.snapshots 在此处输入图像描述

我通过 BCP 命令将数据从 SQL Server 导出到 CSV 文件。

然后我尝试使用“COPY FROM”命令将数据导入 CrateDb。

该文件大约 11go 大。我知道它找到了文件,因为我可以在任务管理器中看到驱动器上的 I/O。

它运行了大约 13 分钟,然后说“0 行受影响”。我不知道为什么它不起作用,我没有收到任何错误。

在此处输入图像描述 知道我能做些什么来让它工作吗?

************************************ 已编辑添加的附加信息 ************* ******************
好的,所以我发现您可以在 COPY 命令的末尾指定“返回摘要”子句。我用一个较小的文件对其进行了测试。

有了这个,我得到一个错误,说主键不能为 NULL。我知道在我提取的数据中它不是 NULL,所以我必须找出为什么它说我的主键是 NULL。

所以我将 BCP 分隔符更改为逗号,因为 CrateDB 的 CSV 文件必须用逗号分隔,并且我手动编辑文件以添加列标题,因为 CrateDB 要求提供标题。

我还在 Notepadd++ 中编辑了该文件以将其保存为 UTF-8 编码,以确保它是正确的编码。

但即便如此,我仍然收到错误说主键值不能为 NULL。

在此处输入图像描述

0 投票
1 回答
80 浏览

database-migration - Create.io 创建表时的列顺序

我在 Windows Server 2012 下运行 CrateDb 版本 3.2.7。我创建了一个这样的表:

创建表test3(firstcolumn bigint主键,secondcolumn int,thirdcolumn时间戳,fourthcolumn double,fifthcolumn double,sixtcolumn smallint,seventhcolumn double,heightcolumn int,ninthcolumn smallint,tenthcolumn smallint)聚集成12个分片(number_of_replicas = 0,refresh_interval = 0) ;

所以我希望第一个列是第一个,依此类推。但是在创建之后,当我执行 SELECT * FROM test3 时,我得到以下结果:

在此处输入图像描述

似乎返回的第一列是“第五”列看起来是按字母顺序返回的。

在此处输入图像描述

这是否意味着 CrateDB 按该顺序创建了列?它是否将订单保留在某个地方?如果列按字母顺序排列,这是否意味着如果我想将数据从另一个 dbms 复制到 CrateDB,那么我必须根据字母顺序导出数据?

0 投票
1 回答
54 浏览

cratedb - CrateDB 3.3 - 无法获得 COPY FROM 以在 Windows 中导入 CSV 文件

我在尝试在 Windows 上导入 csv 时遇到错误,有人可以提供正确的语法吗?

我正在尝试这个:从 'file://C:\Users\jdoe\Downloads\testfile.csv' 复制检查返回摘要;

和变体并获得'SQLActionException [SQLParseException:索引7处的权限非法字符:file://C:\ Users \ jdoe \ Downloads \ testfile.csv]

谢谢,马克

0 投票
1 回答
816 浏览

python-3.x - 通过 SQLAlchemy 方言查询 Crate 数据库:没有更多可用的服务器

我想用板条箱试一试。我首先通过加载一些 twitter 数据并成功从管理 UI 进行查询来尝试它。但是,当我尝试使用 SQLAlchemy 进行查询时,出现以下错误。

这是我运行的导致错误的代码。

知道如何修复它(设置都是默认的)?


更新:

Crate 在主机系统上运行,而 Jupyter 在同一台机器上的容器中运行。我可以通过主机上的“ http://localhost:4200 ”访问 Crate,但不能从同一 natwork 中的其他机器执行“ http://xxx.xxx.xxx.xxx:4200 ”。

我都试过了:

这导致了同样的错误:

0 投票
1 回答
272 浏览

cratedb - 您可以在带有对象列数组的表中批量导入 crateDB 吗?

所以我运行 CrateDB 3.3.3 并且我有一个表,其中有一列类型为对象数组

我已经知道如何在其中插入一行

但是,在我的应用程序中,我通过 HTTP 端点将数据批量插入 CrateDB。

https://crate.io/docs/crate/reference/en/latest/interfaces/http.html

我让它适用于常规表,但不能让它适用于具有一列对象数组的表。谁能告诉我如何使批量插入与这些类型的列一起使用?我似乎找不到任何示例或文档。

(上面的批量插入代码失败,它返回一个(400)错误请求)

0 投票
2 回答
99 浏览

cratedb - CrateDB 无法在 HttpEndpoint 中连接到远程安全服务器

我已经测试 crateDB 3.3.4 几个星期了,我一直通过 http 中的 localhost (127.0.0.1) 连接。我已经成功地在本地主机上使用 HttpEndpoint 批量导入数据。

我现在正在 https 中的云集群上进行测试。我设法在服务器上打开 Chrome 并登录,但我无法通过 HttpEndpoint 在 C# 中进行远程操作。

当我尝试以下代码时,我总是得到“底层连接已关闭:发送时发生意外错误。” 在异常中,我看到“无法将数据写入传输连接:现有连接被远程主机强行关闭”。

知道我在这里做错了什么吗?我以前在本地主机上做过同样的事情,但没有指定凭据,而且效果很好。

0 投票
1 回答
122 浏览

sql - Crate DB - 使用 COPY TO 命令将表导出到不同的 S3 端点

我需要将 Crate DB 表导出到 S3,我可以通过提供 s3 端点使用 COPY TO 命令执行此操作。但我需要将其导出到不同的 S3 端点,而不是默认的 AWS S3 端点。如何提供备用 s3 端点和凭据?