如何在 Cassandra(特别是 CQLSH)中将字符串或文本作为 blob 插入?

2024-01-02

我试图在 CQLSH 中将文本或某些字符串作为 blob 插入以进行测试

insert into test_by_score (commit, delta, test, score)
       values (textAsBlob('bdb14fbe076f6b94444c660e36a400151f26fc6f'), 0,
       textAsBlob('{"prefix": "enwiki", "title": "\"Aghnadarragh\""}'), 100);

它并没有真正起作用,因为我这样做之后:

select * from test_by_score where commit = 0x0b5db8b91bfdeb0a304b372dd8dda123b3fd1ab6;

它说有 0 列...这有点出乎意料(因为它没有向我抛出错误),但我猜 textAsBlob 不是 cqlsh 中的东西。那么有人知道该怎么做吗?


Schema:

CREATE TABLE IF NOT EXISTS test_by_score (
    commit blob, 
    delta int, 
    score int, 
    test blob, 
    PRIMARY KEY(commit, delta, test)
);

我有点不情愿地发布了我的模式,因为我相信我的问题并不是真正关于这个特定的模式。我只是想知道的是,如果有一列保存 blob,是否可以通过先将其更改为 blob,然后将其插入 cqlsh 来在该位置插入字符串?


以下似乎有效。你的WHERE你的状况SELECT语句可能试图访问不正确的十六进制0x0b5db8b91bfdeb0a304b372dd8dda123b3fd1ab6.

DROP KEYSPACE example;
CREATE KEYSPACE example WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};
USE example;

CREATE TABLE IF NOT EXISTS test_by_score (
    commit blob, -- blob representing the commit hash
    delta int, -- how much the scores have changed
    score int, -- the test score, which is determined by the client
    test blob, -- blob for the test
    PRIMARY KEY(commit, delta, test)
);

INSERT INTO test_by_score  (commit, delta, test, score) VALUES 
  (textAsBlob('bdb14fbe076f6b94444c660e36a400151f26fc6f'), 0, textAsBlob('{"prefix": "enwiki", "title": "\"Aghnadarragh\""}'), 100
);

INSERT INTO test_by_score (commit, delta, test, score) VALUES (
  textAsBlob('cdb14fbe076f6b94444c660e36a400151f26fc6f'), 0, textAsBlob('{"prefix": "enwiki", "title": "\"Aghnadarragh\""}'), 100
);

INSERT INTO test_by_score (commit, delta, test, score) VALUES (
  textAsBlob('adb14fbe076f6b94444c660e36a400151f26fc6f'), 0, textAsBlob('{"prefix": "enwiki", "title": "\"Aghnadarragh\""}'), 100
);

抓取所有行

SELECT * FROM example.test_by_score 

选择特定行。

SELECT * FROM example.test_by_score 
  WHERE commit = 0x62646231346662653037366636623934343434633636306533366134303031353166323666633666;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Cassandra(特别是 CQLSH)中将字符串或文本作为 blob 插入? 的相关文章

随机推荐