问题标签 [cockroachdb]
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.
constraints - 在 CockroaachDB 中应用 PRIMARY KEY 约束 - 多个主键错误
我在没有任何 PRIMARY KEY 的情况下在 CRDB 中创建了一个表,并将我的数据填充到表中。
现在表已创建并填充了数据,我想应用约束以使第一列成为 PRIMARY KEY。但我收到一个错误:
约束是:
错误是:
我认为如果没有提到 PRIMARY KEY,CRDB 中有原因,CRDB 会自动将 PRIMARY KEY 分配给名为: 的表rowid
。
如何在 CRDB 的表中查看 PRIMARY KEY?以及如何将我想要的列设为 PRIMARY KEY?
query-performance - 相当于性能诊断工具;SQL 跟踪和 TKPROF - CockroachDB
CockroachDB 中有哪些性能诊断工具?
任何相当于TKPROF?
bash - CockroachDB Docker 编写带有 SQL 命令的脚本
我想完成两件事:
1)使用 docker compose 启动 CockroachDB 集群(工作)
2)在集群上执行SQL命令(我要创建数据库)
我的 Docker 文件如下所示:
当我运行 docker-compose up 时,一切都按预期工作。在使用google时,我发现解决方案是运行一个bash脚本,我创建了以下setup.sh:
我试图通过命令运行脚本:bash -c "setup.sh",但 Docker 说它不能运行命令 "bash"。有什么建议么 ?谢谢 :)
编辑:
我正在运行 docker-compose up,我得到的错误是:
cqrs - 多语言设置中带有 cockroachdb 的 CQRS
我正在考虑使用 cockroachdb 以具有 ACID 保证的第三范式写入数据。所以所有的写入都会被转移到 cockroachdb。
读取都可以是基于对 Cassandra 的行键的点查找。我相信这样的读取设置将消除对 redis 缓存的需要,因为 Cassandra 本身会提供快速读取。因此 Cassandra 表将根据访问路径进行非规范化。
可能存在从 cockroachdb 规范化模式中的插入/更新/删除到插入/更新/删除到 cassandra 非规范化模式的基于事件的同步。
问题一:
这种读/写分离是否适合使用 cockroachdb 的有效用例?目的是减少连接并实现快速读取和写入。Cockroachdb 成为获取事件源类数据的单一事实来源。而 cassandra 和 elasticsearch 等其他数据库最终成为保持同步的查询投影。
问题2 :
这种设置是否适合需要以原子方式完成 N 语句的金融交易?根据我的理解,假设有 N 个 SQL 语句在 cockroachdb 3NF 模式中以事务方式完成。在此之后,读取发生在 Cassandra/ElasticSearch 中,由于同步延迟,它们尚未同步。在这种最终一致性场景中,如果用户发送另一个命令以从其他机器并行获得相同的结果,这将转到命令处理程序,该处理程序将在 cockroachdb 中查找。我认为由于 CockroachDb 符合 ACID,我们将确保在查找 cockroachdb 后的命令验证步骤中使命令无效。我相信这个 cockroachdb 会抛出乐观锁异常,因为写入同一张表的事务已经在进行中。所以问题是 - 在这种情况下,
问题 3
我想到的最后一个用例是让 cockroachdb 扮演火花集群对 cassandra 的聚合作用。我们可以在 cockroachdb 中进行聚合,其中包含所有数据并存储在 cassandra 的预聚合表中。虽然 ElasticSearch 也能够进行聚合,但这里有一个问题 - 这个用例是否也听起来正确 wrt 使用 cockroachdb 而不是 elasticsearch 进行聚合?
sql - CockroachDB + Ubuntu - 集群停止且没有错误消息
我刚刚在 Ubuntu 上安装了 CockroachDB,并在最奇怪的事情发生时尝试启动它。该过程几乎立即开始然后停止,没有显示任何错误。
我正在运行的命令是:
我得到的回应是:
在此之后,我可以再次在终端中写入,而无需手动终止它。稍后尝试使用内置 SQL 客户端连接到数据库时,它不会允许我。另外,当我运行“top”命令时,蟑螂进程不会出现
cockroachdb - 在 CockroachDB 中没有锁的情况下提交
从应用程序程序员的角度来看,我试图了解CockroachDB中的 ACID 如何在没有锁的情况下工作。想将其用于会计/ ERP 应用程序。
当两个用户同时更新同一个数据库字段(例如总帐科目总计字段)时,CockroachDB会做什么?假设每个都作为各自事务的一部分同时更新许多其他非重叠字段。
中止的应用程序的提交过程是否会在提交时立即得到通知?
当我们在应用程序中编写数据库访问代码时,我们是否需要考虑额外的可能性,例如,在 ACID/锁定PostgreSQL中?
或者正在为所有实际目的编写代码来访问CockroachDB ,就像在提交和一般情况 下访问标准RDBMS一样。
当然,忽略性能问题/连接等。
cockroachdb - Unable to connect a node to cluster
I have three cockroachdb nodes, two of which are with DigitalOcean (one in SF and NY) and the third TX server. I followed the Manual Deployment documentation and our local node initated and then our remote nodes came back with:
I nmap
ed from our NY server to our TX node and the port was open. I then ran the cockroach start
with --logtostderr
and noticed it's trying to resolve to the local IP, even when I tell it to --join REMOTEIP:PORT
.
Did I setup the local node hostname incorrectly? The troubleshooting documentation is not super helpful. I even tried changing the TX host to the local IP and that did not resolve the issue.
EDIT:
Our firewall was causing communication issues. Once resolved, our TX node required the --advertise-host
parameter.
cockroachdb - 如何从 S3 eu-west-1 区域中的存储桶导入?
我尝试从 eu-west-1 区域的 S3 存储桶批量导入 cockroach db
我收到错误消息:
如何在导入语句中指定 S3 区域?
csv - 如何将 csv 文件导入到带有 SERIAL 类型列的 crdb 表中?
我有一个类型为列的表SERIAL
:
用于导入 3 列的 csv 文件:node_id
、key
和value
. 我希望id
在导入数据时由 crdb 分配第一个 , 。
导入失败并出现以下错误:
有什么解决方法吗?
digital-ocean - Cockroachdb 管理 UI 无法访问
我正在尝试在 Digital Ocean 上部署 CockroachDB 集群。我按照教程中列出的步骤https://www.digitalocean.com/community/tutorials/how-to-deploy-cockroachdb-on-a-three-node-cluster-on-ubuntu-16-04
我可以看到 cockroachdb 在主机上运行,但无法访问 Web Admin UI。
通过应用程序访问它时,我遇到了同样的问题。
这是启动命令和响应。注意:我在创建 Droplet 时启用了专用网络,可能是因为这个原因吗?
roach@cockroach-01:~$ cockroach start --insecure --background --advertise-host=10.132.10.114
*
* WARNING: RUNNING IN INSECURE MODE!
*
* - Your cluster is open for any client that can access <all your IP addresses>.
* - Any user, even root, can log in without providing a password.
* - Any user, connecting as root, can read or write any data in your cluster.
* - There is no network encryption nor authentication, and thus no confidentiality.
*
* Check out how to secure your cluster: https://www.cockroachlabs.com/docs/stable/secure-a-cluster.html
*
CockroachDB node starting at 2017-11-10 22:59:07.153981296 +0000 UTC (took 0.4s)
build: CCL v1.1.2 @ 2017/11/02 19:32:03 (go1.8.3)
admin: http://cockroach-01:8080
sql: postgresql://root@10.132.10.114:26257?application_name=cockroach&sslmode=disable
logs: /home/roach/cockroach-data/logs
store[0]: path=/home/roach/cockroach-data
status: initialized new cluster
clusterID: 77dea0f4-d2c1-49c3-bfe9-8686a6084603
nodeID: 1