1+ -- Copyright 2026 Google LLC
2+ --
3+ -- Licensed under the Apache License, Version 2.0 (the "License")
4+ -- you may not use this file except in compliance with the License.
5+ -- You may obtain a copy of the License at
6+ --
7+ -- http://www.apache.org/licenses/LICENSE-2.0
8+ --
9+ -- Unless required by applicable law or agreed to in writing, software
10+ -- distributed under the License is distributed on an "AS IS" BASIS,
11+ -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+ -- See the License for the specific language governing permissions and
13+ -- limitations under the License.
14+
115CREATE PROTO BUNDLE (
216 ` org.datacommons.Observations`
3- )
17+ );
418
519CREATE TABLE Node (
620 subject_id STRING(1024 ) NOT NULL ,
721 value STRING(MAX),
822 bytes BYTES(MAX),
923 name STRING(MAX),
1024 types ARRAY< STRING(1024 )> ,
25+ last_update_timestamp TIMESTAMP OPTIONS (allow_commit_timestamp= true),
1126 name_tokenlist TOKENLIST AS (TOKENIZE_FULLTEXT(name)) HIDDEN,
12- ) PRIMARY KEY (subject_id)
27+ ) PRIMARY KEY (subject_id);
1328
1429CREATE TABLE Edge (
1530 subject_id STRING(1024 ) NOT NULL ,
1631 predicate STRING(1024 ) NOT NULL ,
1732 object_id STRING(1024 ) NOT NULL ,
1833 provenance STRING(1024 ) NOT NULL ,
1934) PRIMARY KEY (subject_id, predicate, object_id, provenance),
20- INTERLEAVE IN Node
35+ INTERLEAVE IN Node;
2136
2237CREATE TABLE Observation (
2338 observation_about STRING(1024 ) NOT NULL ,
@@ -31,4 +46,66 @@ CREATE TABLE Observation (
3146 import_name STRING(1024 ),
3247 provenance_url STRING(1024 ),
3348 is_dc_aggregate BOOL,
34- ) PRIMARY KEY (observation_about, variable_measured, facet_id)
49+ ) PRIMARY KEY (observation_about, variable_measured, facet_id);
50+
51+ CREATE TABLE ImportStatus (
52+ ImportName STRING(MAX) NOT NULL ,
53+ LatestVersion STRING(MAX),
54+ GraphPath STRING(MAX),
55+ State STRING(1024 ) NOT NULL ,
56+ JobId STRING(1024 ),
57+ WorkflowId STRING(1024 ),
58+ ExecutionTime INT64,
59+ DataVolume INT64,
60+ DataImportTimestamp TIMESTAMP OPTIONS ( allow_commit_timestamp = TRUE ),
61+ StatusUpdateTimestamp TIMESTAMP OPTIONS ( allow_commit_timestamp = TRUE ),
62+ NextRefreshTimestamp TIMESTAMP ,
63+ ) PRIMARY KEY (ImportName);
64+
65+ CREATE TABLE IngestionHistory (
66+ CompletionTimestamp TIMESTAMP NOT NULL OPTIONS ( allow_commit_timestamp = TRUE ),
67+ IngestionFailure Bool NOT NULL ,
68+ WorkflowExecutionID STRING(1024 ) NOT NULL ,
69+ DataflowJobID STRING(1024 ),
70+ IngestedImports ARRAY< STRING(MAX)> ,
71+ ExecutionTime INT64,
72+ NodeCount INT64,
73+ EdgeCount INT64,
74+ ObservationCount INT64,
75+ ) PRIMARY KEY (CompletionTimestamp DESC );
76+
77+ CREATE TABLE ImportVersionHistory (
78+ ImportName STRING(MAX) NOT NULL ,
79+ Version STRING(MAX) NOT NULL ,
80+ UpdateTimestamp TIMESTAMP NOT NULL OPTIONS (allow_commit_timestamp= true),
81+ Comment STRING(MAX),
82+ ) PRIMARY KEY (ImportName, UpdateTimestamp DESC );
83+
84+ CREATE TABLE IngestionLock (
85+ LockID STRING(1024 ) NOT NULL ,
86+ LockOwner STRING(1024 ),
87+ AcquiredTimestamp TIMESTAMP OPTIONS ( allow_commit_timestamp = TRUE ),
88+ ) PRIMARY KEY (LockID);
89+
90+ CREATE PROPERTY GRAPH DCGraph
91+ NODE TABLES(
92+ Node
93+ KEY(subject_id)
94+ LABEL Node PROPERTIES(
95+ bytes,
96+ name,
97+ subject_id,
98+ types,
99+ value)
100+ )
101+ EDGE TABLES(
102+ Edge
103+ KEY(subject_id, predicate, object_id, provenance)
104+ SOURCE KEY(subject_id) REFERENCES Node(subject_id)
105+ DESTINATION KEY(object_id) REFERENCES Node(subject_id)
106+ LABEL Edge PROPERTIES(
107+ object_id,
108+ predicate,
109+ provenance,
110+ subject_id)
111+ );
0 commit comments