小编Our*_*ros的帖子

蓝牙BLE的UUID和MACAddress

我必须承认,对于BLE 4.0,我是一个新手,我想了解什么是BLE外设的唯一标识符.通常,对于所有WiFi通信,MAC被视为设备的唯一ID.我有以下问题:

  • UUID用于什么?不同的BLE外设是否应该有不同的UUID?
  • 什么是BLE外围设备的唯一ID,可由其他一些中央BLE设备识别?比如说,Android上的定位应用程序如何检测外围BLE设备?
  • 只需通过扫描(即无连接)即可获得BLE外设的唯一ID吗?
  • 是否需要任何手动干预才能连接到BLE外设?我已经读过,不需要手动选择读取外设传输的数据

希望你们中的一些人可以帮忙.

uuid android bluetooth-lowenergy ibeacon

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

为什么要为 AWS Aurora 使用多可用区部署

一般在使用AWS RDS时,实现高可用的推荐做法是在不同AZ部署热副本(多AZ部署)。此外,可以启动一些只读副本以提高读取性能。

我已阅读 AWS Aurora 文档,它使用通用虚拟存储层,在 3 个可用区上复制,每个可用区中有两个副本。

在此处输入图片说明

我的问题是:Aurora 数据库集群是否需要使用 Amazon 多可用区部署,如果 Aurora 本身能够自我修复,并且其存储分布在多个可用区上?如果它在 3 个可用区中的每一个中保留 2 个存储副本,那么它与使用多可用区副本设置进行故障转移一样可靠。此外,在故障转移期间。它会自动创建另一个实例(如果不存在只读副本)或切换主实例。我真的不明白需要创建使用多可用区 Aurora 集群来“提高”可用性的额外要求。

在某些情况下,是否有可能在默认 Aurora 部署下可用性会受到影响?在包含主 Aurora 数据库节点的整个可用区丢失期间会发生什么?

amazon-web-services amazon-aurora

5
推荐指数
1
解决办法
1818
查看次数

以字段值或元素数量为条件删除 dynamo db 列表中的前几个条目

我在 dynamoDB 中有一个数据集,如下所示:

{
    "userID" : 2323423,    // Primary Key
    "lt" :  [
            {
                  "timestamp"   : epoch1,
                  "coordinates" : "coordinate1"
            },
            {
                  "timestamp"   : epoch2,
                  "coordinates" : "coordinate2"
            },
            ...
        ]
}
Run Code Online (Sandbox Code Playgroud)

“lt”是位置跟踪列表,用于存储用户 ID 在不同时间的坐标值。

Q1要求是:

  • 每个用户最多存储 1 天的位置跟踪数据,只有在收到新的 LT 坐标数据条目时才会自动删除
  • 这意味着一次可能会有陈旧的 LT 数据,所有这些数据的持续时间都是 24 小时。但是,一旦新的 LT 坐标数据出现,就会删除陈旧的条目,以便删除超过 24 小时的条目。

我很清楚如何将条目附加到列表,甚至从 dynamoDB 的列表中删除特定索引处的条目。

UpdateExpression : "REMOVE lt[0]" - 删除一个元素

UpdateExpression : "REMOVE lt[0] lt[1]" - 删除元素 0 和 1

但是,现在的要求是从列表的开头删除条目,以便从列表中删除早于 24 小时的条目。我已经为此纠结了很长时间,似乎没有任何条件表达式可以帮助我们做到这一点。我错过了什么吗?

Q2作为一种解决方法,我将要求更改为:

  • 将最后 100 个条目存储到这个“lt”列表中。
  • 这将为用户保留潜在的陈旧 LT …

nosql amazon-dynamodb

5
推荐指数
1
解决办法
255
查看次数

Cassandra还是Hbase?

我有一个要求,我想存储以下内容:

  • Mac地址// PKEY
  • TimeStamp // PKEY
  • LocationID
  • OWNERNAME
  • 信号强度

插入逻辑如下:

  • 在每个位置每小时存储一次每个活动设备(MacAddress)的上述统计信息(LocationID)
  • 条目在每小时结束时创建,因此主键始终为MAC + TimeStamp

没有更新,只有插入

可以执行的查询如下:

  • 给我最后'N'小时的所有条目,其中MacAddress ="...."
  • 给我最后'N'小时的所有条目其中LocationID IN(locID1,locID2,..);

不用说,有数十亿条目,我想使用HBASE或Cassandra.我试图探索,似乎Cassandra可能不是正确的选择.

原因是如果我在cassandra中有以下内容:

<< RowKey> MacAddress:TimeStamp >>
+ LocationID
+ OwnerName
+ Signal Strength

这两个查询都会扫描整个数据库,对吗?即使我在LocationID上添加索引,这只会在某种程度上帮助第二个查询,因为时间戳上没有索引(我相信时间戳上的搜索速度不快,因为MacAddress:TimeStamp复合键不会允许我们只搜索时间戳,相反,会发生全扫描,这是正确的吗?).

如果我们选择HBase或Cassandra,我会在这里停留很长时间,任何见解都会有所帮助.

hbase cassandra

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

从 dynamoDB 列表数据类型中删除前几个条目

高级要求:

  • 可能有数百万用户
  • 任何用户都可以收藏另一个用户
  • 需要存储用户的位置跟踪数据。最多必须存储 100 个最近的数据点。

我正在考虑使用 Dynamo DB 来实现它,通过以以下格式存储数据(使用 NOSQL 的动机是检索速度会很快,因为在一次获取中我将获得整个数据):

{
    "userID" : 2323423,
    "favs" :    [
            userIDA,
            userIDB,
            ...
    ],
    "lt" :  [
            {"timestamp1" : "coordinate1"},
            {"timestamp2" : "coordinate2"},
            ...
        ]
}
Run Code Online (Sandbox Code Playgroud)

userID 是主键。

查询要求是

  1. 添加删除收藏夹应该是可能的。
  2. 可能会出现一堆新的时间戳 <=> GPS 位置对,我需要将其输入到该用户的“lt”数据中。由于有 100 个 LT 数据点的限制,我也需要删除最旧的数据点。

我很确定 (1) 是直接使用 List 数据类型上的添加/删除 API。如何解决查询 (2)?如果 UPDATE 查询本身能够以某种方式迭代所有对象并删除旧的对象,那将是最好的。我已经读过 Dynamo DB 所理解的列表中的索引是整数格式,那么我们可以以某种方式利用它吗?列表中的元素是否总是从 0 到 N 索引?如果是这样,我可以从数组的开头删除适当数量的元素。有什么办法吗?

我愿意使用不同的数据模式,但请让我知道整个推理以及如何解决。

nosql amazon-dynamodb

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

RTree 与 kd-trees 的性能

我在 5 维空间中有大约 10 K 点。我们可以假设点在空间 (0,0,0,0,0) 和 (100,100,100,100,100) 中随机分布。显然,整个数据集可以很容易地驻留在内存中。

我想知道 k 最近邻的哪种算法运行得更快,kd-tree 或 RTree。

虽然我对这两种算法有一些非常高级的想法,但我不确定哪个会运行得更快,以及为什么。如果有的话,我愿意探索其他算法,这些算法可以快速运行。如果可能,请说明为什么算法可以运行得更快。

algorithm spatial kdtree nearest-neighbor r-tree

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

如何在云搜索中搜索文字数组或整数数组中的元素

我有一个云搜索域,其中在名为“color_f_la”的列上有索引。它是一个分面索引,是一个文字数组。它的样本值为:

[ “蓝绿” ]

我一直在试图找出文档来构建一个可以搜索特定颜色的查询,但无济于事。甚至有可能吗?

amazon-cloudsearch

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

在python程序中键入错误

当我运行以下python代码(abc.py)时,我总是得到一个类型错误,如下所示:

./abc.py activatelink alphabeta
Type Error: ['alphabeta']
Run Code Online (Sandbox Code Playgroud)

我的代码:

#!/usr/bin/python

import urllib2
from urllib2 import URLError
from urllib2 import HTTPError
import requests
import urllib
import json
import time
import os
import sys
import hashlib


def activate_user(link):
        print invoke_rest('GET', link)

def invoke_rest(request_type, rest_url, payload, headers):
        try:
                api_url = rest_url
                if request_type == 'GET':
                        r = requests.get(api_url)
                        to_ret = {'code':r.status_code, 'reply':r.text}
                        return to_ret
                elif request_type == 'POST':
                        r = requests.post(api_url, data=payload, headers=headers)
                        to_ret = {'code':r.status_code, 'reply':r.text}
                        return to_ret
                else:
                        return "Invalid request type …
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
77
查看次数