Joe, TS records in a given table all have the same structure and are stored and retrieved as single objects (in Riak KV sense); the backend cannot introspect them and only extract some fields.
Full records are read from backend and these are delivered, in chunks, to the coordinator node (the node your client has connected to). On receipt, columns not appearing in the SELECT clause are dropped; thus, only the relevant columns are kept while the coordinator collects the remaining chunks. From there, records are shipped to the client (via temp tables if the query had an ORDER BY or LIMIT clause). So no, the 1M blobs will be read from the leveldb backend, and they will hog the bandwidth between storage and coordinator nodes. They will not appear in the traffic going from the coordinator to the client, though. Andrei On Wed, Mar 29, 2017 at 10:17 PM, Alexander Sicular <sicul...@gmail.com> wrote: > I'm not 100% certain but I do not believe that is the case. Part of the > reason for structured data is efficient retrieval. I believe the data is > read but only the data selected leaves the leveldb backend, unselected data > never leaves leveldb so there's no overhead when passing data from level to > Riak or on the network. > > I defer to the engineering folks working on TS tho. > > -Alexander > > @siculars > http://siculars.posthaven.com > > Sent from my iRotaryPhone > > On Mar 29, 2017, at 15:08, Joe Olson <jo4...@outlook.com> wrote: > > Suppose I have the following table in RiakTS: > > > CREATE TABLE T1 ( > > id VARCHAR NOT NULL, > > eventtime TIMESTAMP NOT NULL, > > field2 SINT64, > > data BLOB NOT NULL, > > primary key (id, QUANTUM(eventtime, 365, 'd')),id) > > ) > > > Assume the BLOB field is close to the max size for a RiakTS BLOB value > (~1MB) > > > Suppose I want to execute the following query: > > > Select id, eventtime, field2 from T1 where ((id = ID1) and (eventtime >= T1 > and eventtime < T2)) > > > I only want the SINT64 field, not the 1MB BLOB. > > > Am I paying for the bandwidth for the RiakTS cluster to pass around > (internally) the 1MB BLOB field just to get the SINT64 field? > > > If so, is there a way to avoid this, besides creating a second table without > the BLOB field? > > _______________________________________________ > riak-users mailing list > riak-users@lists.basho.com > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com > > > _______________________________________________ > riak-users mailing list > riak-users@lists.basho.com > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com > _______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com