小编Rub*_*ski的帖子

如何使用cql查询从java客户端hector获取cassandra中的不同数据类型

我是cassandra和hector的新手所以我正在尝试执行cql查询,但问题是并非所有列都是字符串类型,所以我如何执行查询"select*from users"?

我的专栏系列看起来像这样:

UPDATE COLUMN FAMILY users
WITH comparator = UTF8Type
AND key_validation_class=UTF8Type
AND column_metadata = [
{column_name: full_name, validation_class: UTF8Type}
{column_name: email, validation_class: UTF8Type}
{column_name: state, validation_class: UTF8Type, index_type: KEYS}
{column_name: gender, validation_class: UTF8Type}
{column_name: birth_year, validation_class: LongType, index_type: KEYS}
{column_name: education, validation_class: UTF8Type}
];
Run Code Online (Sandbox Code Playgroud)

我使用以下代码来执行查询:

CqlQuery<String, String, String> cqlQuery = new CqlQuery<String, String, String>(Keyspace,stringSerializer,stringSerializer,stringSerializer);

    cqlQuery.setQuery("select * from users");

    QueryResult<CqlRows<String, String, String>> result = cqlQuery.execute();


    if (result != null && result.get() != null) {
        List<Row<String, String, String>> list = …
Run Code Online (Sandbox Code Playgroud)

cql cassandra hector

9
推荐指数
1
解决办法
4842
查看次数

如何在 ViewPager 的 Fragment 页面上应用 fitsSystemWindows?

我无法让我的 ViewPager 页面尊重状态栏高度。我的 ViewPager 有几个页面,在其中一个页面上有一张需要在半透明状态栏下显示的图像。其余页面只需要一个彩色状态栏,所以我的想法是在片段布局上使用 fitsSystemWindows="true" ,作为 viewpager 的页面。但这行不通。似乎在第一次绘制时只有第二页应用了填充。但是当滚动页面时。它消失了。所以在我看来,页面没有从 ViewPager 得到调度来应用插图。但我不知道如何实现它。

我试图用 做一些事情 public static void setOnApplyWindowInsetsListener(View v, OnApplyWindowInsetsListener listener),但我无法开始工作。我的想法是以某种方式在每个新页面上应用插图。也许这是正确的方法,但我找不到调用此方法的正确位置。

那么有没有人可以帮助我解决这个问题?我将在下面放置我的一些代码以提供有关该问题的一些上下文。

活动.xml

<..WindowInsetsFrameLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
Run Code Online (Sandbox Code Playgroud)

这是一个自定义布局管理器,用于支持更改片段(片段转换)并再次应用 windowInset。仅供参考,这是代码:

public class WindowInsetsFrameLayout extends FrameLayout {
    public WindowInsetsFrameLayout(@NonNull Context context) {
        this(context, null);
    }

    public WindowInsetsFrameLayout(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public WindowInsetsFrameLayout(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);

        // Look for replaced fragments and apply the insets again.
        setOnHierarchyChangeListener(new OnHierarchyChangeListener() {
            @Override …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager windowinsets

6
推荐指数
1
解决办法
602
查看次数

如何从hess中获取cassandra的反柱值?

您好我正在尝试使用hector从cassandra获取数据.有两种方法可以做到这一点.

一个是这样的cqlQuery:

CqlQuery<String, String, Long> cqlQuery = new CqlQuery<String, String, Long>(connect.tutorialKeyspace, stringSerializer, stringSerializer, longSerializer);
    cqlQuery.setQuery("select home from page_view_counts where KEY ="localhost");

    QueryResult<CqlRows<String, String, Long>> result;
    try
    {
        result = cqlQuery.execute();
    }
    catch(HectorException e){
        result = null;
        message = e.getMessage();
    }
Run Code Online (Sandbox Code Playgroud)

没有疑问它应该是这样的,但我不能让它工作:

SliceQuery<String, String, Long> query = HFactory.createSliceQuery(connect.tutorialKeyspace, stringSerializer,stringSerializer,longSerializer); 
    QueryResult<ColumnSlice<String, Long>> result2 = query.setColumnFamily("page_view_counts").setKey("localhost").setColumnNames("home").execute();
Run Code Online (Sandbox Code Playgroud)

我在哪里弄错了?

cassandra hector

3
推荐指数
1
解决办法
1960
查看次数

使用元数据为超级列创建Cassandra架构

我想在我的数据库中使用cassandra -cli以下结构

例如,我有一个人的地址,地址包含一个zipcode,housenumber等原理图,它看起来像这样:

name: "address",
value: {
    city: {name: "city", value: "San Francisco"},
    street: {name: "street", value: "555 Union Street"},
    zip: {name: "zipcode", value: "94105"},
}
Run Code Online (Sandbox Code Playgroud)

我知道如何创建超列和普通列.但我想使用column_metadata来指定超级列中的列的外观.所以这最终会是这样的:

Create column family person
with comparator = UTF8Type
and key_validation_class=UTF8Type
and default_validation_class = UTF8Type
and compression_options =
{sstable_compression:SnappyCompressor, chunk_length_kb:64}
and column_metadata = [
{column_type: super, column_name: address, validation_class: UTF8Type
column_metadata =[
{column_name: city, validation_class: UTF8Type}
{column_name: Street, validation_class: UTF8Type}
{column_name: zip, validation_class: UTF8Type}
{column_name: housnumber, validation_class: LongType}
];
Run Code Online (Sandbox Code Playgroud)

这是可能吗?

如果我可以将超级列放在另一个超级列中,那就更好了.这样,超级列"地址"可以包含多个超级列"地址",其中包含列:"street","zip"等.

schema command-line-interface cassandra super-columns

3
推荐指数
1
解决办法
3506
查看次数

当使用RandomPartioner和Hector作为客户端时,如何从cassandra中获取已排序的行?

为了提高我对Hector和cassandra的技能,我正在尝试使用不同的方法从cassandra中查询数据.

目前我正在尝试制作一个简单的消息系统.我希望按照时间顺序获取发布的消息,并首先发布最后发布的消息.

在普通的sql中,可以使用'order by'.我知道如果你使用OrderPreservingPartitioner是可能的,但是这个分区器已被弃用并且效率低于RandomPartioner.我想在带有时间戳als值的辅助列上创建索引,但我无法弄清楚如何获取数据.我确定我必须使用至少两个查询.

我的专栏系列看起来像这样:

create column family messages
with comparator = UTF8Type
and key_validation_class=LongType
and compression_options =
{sstable_compression:SnappyCompressor, chunk_length_kb:64}
and column_metadata = [
{column_name: message, validation_class: UTF8Type}
{column_name: index, validation_class: DateType, index_type: KEYS}
];
Run Code Online (Sandbox Code Playgroud)

我不确定我是否应该使用DataType或long作为索引列,但我认为这对于这个问题并不重要.

那么如何才能对数据进行排序?如果可能的话,我想知道如何完成CQL语法和whitout.

提前致谢.

sorting cassandra hector

2
推荐指数
1
解决办法
2892
查看次数