CREATE TABLE Sequences ( Sequence_ID STRING(MAX) NOT NULL, -- The name of the sequence Next_Value INT64 NOT NULL ) PRIMARY KEY (Sequence_ID)
CREATE TABLE Table1 ( Hashed_Id INT64 NOT NULL, ID INT64 NOT NULL, -- other columns with data values follow.... ) PRIMARY KEY (Hashed_Id, Id)
SELECT * FROM Table1 WHERE t1.Hashed_Id = 0xDEADBEEF AND t1.Id = 1234
CREATE TABLE Table2 ( Id String(MAX), -- UUID Table1_Hashed_Id INT64 NOT NULL, Table1_Id INT64 NOT NULL, -- other columns with data values follow.... ) PRIMARY KEY (Id) SELECT * from Table2 t2 INNER JOIN Table1 t1 ON t1.Hashed_Id = t2.Table1_Hashed_Id AND t1.Id = t2.Table1_Id WHERE ... -- some criteria
CREATE TABLE Transactions ( account_number INT64 NOT NULL, timestamp TIMESTAMP NOT NULL, transaction_info ..., ) PRIMARY KEY (account_number, timestamp DESC)
TimestampShardId = CRC32(Timestamp) % 100
CREATE TABLE Events ( TimestampShardId INT64 NOT NULL Timestamp TIMESTAMP NOT NULL, event_info... ) PRIMARY KEY (TimestampShardId, Timestamp DESC)
Select * from Events WHERE TimestampShardId BETWEEN 0 AND 99 AND Timestamp > @lower_bound AND Timestamp < @upper_bound;
CREATE TABLE Events ( UserId String(MAX), Timestamp TIMESTAMP, EventData) PRIMARY KEY (UserId, Timestamp DESC); CREATE INDEX EventsByTimestamp ON Events (Timestamp DESC);
CREATE TABLE Events ( UserId String(MAX), Timestamp TIMESTAMP, TimestampShardId INT64, EventData) PRIMARY KEY (UserId, Timestamp DESC); CREATE INDEX EventsByTimestamp ON Events (TimestampShardId,Timestamp);
Select * from Events@{FORCE_INDEX=EventsByTimestamp} WHERE TimestampShardId BETWEEN 0 AND 99 AND Timestamp > @lower_bound AND Timestamp < @upper_bound;
CREATE TABLE Employees ( CompanyUUID INT64, EmployeeUUID INT64, FullName STRING(MAX) ... ) PRIMARY KEY (CompanyUUID,EmployeeUUID)
CREATE INDEX EmployeesById ON Employees (EmployeeUUID) STORING (FullName);
Select * from Employees@{FORCE_INDEX=EmployeesById} Where EmployeeUUID=xxx;