Remember that visibility labels are effectively post-filters. If you want to support access patterns of data based on specific data sources, you would need to structure your data in such a way that you can find all of the data from that sensor fast.

If the kind of data you get from one sensor is static (e.g. always of a specific type), I'd suggest you build labels based on that. Labels describing the data itself, instead of the sensor which that data came from.

If you need to filter data purely based on the sensor the data came from, I can't think of a better approach than tagging each sensor. This will have limitations when it comes to the built-in ZooKeeper-backed visibility labels implementation which you will have to eventually consider replacing (the ZK impl can probably only scale to the 10000s-100000s of labels)

On 9/11/18 10:01 AM, Rob Verkuylen wrote:
Thnx Josh,

You're right, I wont change the labels or their meaning. In this use case I have sensor data coming in from X amount of sensors, all labeled SensorX. New sensor data comes in every day from existing sources, but also from newly installed sensors with a previously unknown but unique name. I want to label the data with the sensorname, so I can give ppl access to the sensordata belonging to them specifically or their team.

The amount of sensors can run into the thousands, meaning that amount of labels added to the user. I get that adding auth labels makes sense when the labels are pretty much static, but what of use cases like these? Would a filtering iterator be a better match?

Thnx, Rob

On Mon, Sep 10, 2018 at 6:04 PM, Josh Elser <[email protected] <mailto:[email protected]>> wrote:

    I think you know this already, but I'm not 100% sure based on your
    message: trying to change the labels on the data is a bad idea. If
    you need to handle a case where a label means one thing on day1 and
    another thing on day2, you would need to build the logic to handle that.

    The only other thing I thought of is that you will have to write
    code that updates your "trusted user" to have all of the
    authorization labels that you might use. Even the Accumulo
    "superuser" must have the proper authorizations set that you want to
    use.


    On 9/10/18 9:40 AM, Rob Verkuylen wrote:

        Hi,

        I'm designing a table where the ColumnVisibility is based off of
        labels within the data as it comes in. I know the formatting,
        but not the exact label names and the labels change over time.

        Based on the labels of the data which I can use for
        ColumnVisibility and the user's access to certain
        labels(determined via LDAP group memberchip) I want to use the
        labels as a filtering mechanism.

        Questions are: Is this the best approach? Obviously this works
        client side, but I want to push the filtering to the server. It
        seems that I need to assign every possible label to a user, to
        get access to it. Ideally I would have a trusted used with all
        access and the query engine extracts the labels from the current
        user and uses them as authorisation labels.

        I guess this is also possible with (custom?) filtering on the
        server, but this would seem the ideal use case for visibility
        labels with Accumulo to me.

        Thnx, Rob


Reply via email to