gpt4 book ai didi

mysql - 从mysql迁移cassandra(可排序查询的设计模式)

转载 作者:行者123 更新时间:2023-11-30 01:20:49 25 4
gpt4 key购买 nike

我有一个这样的数据库:

  • 图像
    • id(整数)
    • 姓名(文字)
    • 图像( Blob )
    • create_date(日期时间)
    • 评论(文本)
    • 大小(整数)
    • 查看(整数)

表图像包含带有元信息的 jpg。我能够在 MySQL 中排序(按 View 、大小和创建日期)

如何对 Cassandra 执行相同操作?

<小时/>

我尝试一些设计,例如: - 图片 - ID(文本) - 姓名(文字) - 图像( Blob )

  • 图像按大小

    • id_image(文本)
    • 大小(整数)
  • 图像按 View

    • id_image(文本)
    • 查看(整数)
  • 创建图像

    • id_image(文本)
    • create_date(时间戳)

但是当我不知道如何订购而不知道“id”之前......

我读到Select 2000 most recent log entries in cassandra table using CQL (Latest version)但我不知道如何将其移植到我的用途中......

最佳答案

一种解决方案:

  • 图像大小

表格

CREATE TABLE image_by_size
(
rowkey text, // arbitrary text, it can be 'IMAGE_BY_SIZE' for example
size int,
id_image text,
PRIMARY KEY (rowkey,size,id_image)
);

按尺寸列出图像:

 SELECT id_image FROM image_by_size WHERE rowkey='IMAGE_BY_SIZE' ORDER BY size DESC;
  • 按 View 显示图像

表格

   CREATE TABLE image_by_view
(
rowkey text, // arbitrary text, it can be 'IMAGE_BY_VIEW' for example
view int,
id_image text,
PRIMARY KEY (rowkey,view,id_image)
);

按 View 列出图像:

SELECT id_image FROM image_by_view WHERE rowkey='IMAGE_BY_VIEW' ORDER BY size DESC;
  • 图像由创建

表格

  CREATE TABLE image_by_create
(
rowkey text, // arbitrary text, it can be 'IMAGE_BY_CREATE_DATE' for example
create_date timestamp,
id_image text,
PRIMARY KEY (rowkey,create_date,id_image)
);

按创建日期列出图像:

 SELECT id_image FROM image_by_create WHERE rowkey='IMAGE_BY_CREATE_DATE' ORDER BY create_date DESC;
<小时/>

一张表解决方案

由于大小、 View 和时间戳都是数字,因此可以仅使用一张表来索引所有这些

CREATE TABLE image_index
(
index_type text, // 'IMAGE_BY_SIZE', 'IMAGE_BY_VIEW' or 'IMAGE_BY_CREATE_DATE'
value bigint,
id_image text,
PRIMARY KEY (index_type,value,id_image)
);

按大小索引图像

INSERT INTO image_index(index_type,value,id_image) VALUES('IMAGE_BY_SIZE',size_as_long,id_image);

按 View 索引图像

INSERT INTO image_index(index_type,value,id_image) VALUES('IMAGE_BY_VIEW',view_as_long,id_image);

按创建日期索引图像

INSERT INTO image_index(index_type,value,id_image) VALUES('IMAGE_BY_CREATE_DATE',create_timestamp_as_long,id_image);

关于mysql - 从mysql迁移cassandra(可排序查询的设计模式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18560587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com