Dashboard: support for buildkite sharding. (#2014)

diff --git a/dashboard/client/pages/bazelci.tsx b/dashboard/client/pages/bazelci.tsx
index 9b3c541..5ed84ca 100644
--- a/dashboard/client/pages/bazelci.tsx
+++ b/dashboard/client/pages/bazelci.tsx
@@ -214,7 +214,7 @@
     }
 
     const data = stats.data.items;
-    var group = _.groupBy(data, (item) => item.bazelCITask);
+    var group = _.groupBy(data, (item) => item.name);
 
     return _.map(
       _.sortBy(
@@ -240,7 +240,7 @@
     <>
       {_.map(sortedGroup, (data) => (
         <div
-          key={data[0].bazelCITask}
+          key={data[0].name}
           className="flex flex-col border shadow rounded bg-white ring-1 ring-black ring-opacity-5 flex-auto"
         >
           <div className="bg-gray-100 flex flex-row items-center border-b">
diff --git a/dashboard/server/database.sql b/dashboard/server/database.sql
index 9c548b5..e9ba255 100644
--- a/dashboard/server/database.sql
+++ b/dashboard/server/database.sql
@@ -340,6 +340,9 @@
                                                  '--task=(\S+)'),
                                        SUBSTRING(data ->> 'command' FROM
                                                  '--platform=(\S+)')) AS bazelci_task,
+                              COALESCE(
+                                      (data ->> 'parallel_group_index')::integer,
+                                      0)                              AS parallel_group_index,
                               data ->> 'state'                        AS state,
                               (data ->> 'scheduled_at')::timestamptz  AS scheduled_at,
                               (data ->> 'created_at')::timestamptz    AS created_at,
@@ -353,7 +356,8 @@
 WHERE bazelci_task is NOT NULL;
 
 CREATE UNIQUE INDEX buildkite_job_mview_pkey
-    ON buildkite_job_mview (org, pipeline, build_number, bazelci_task);
+    ON buildkite_job_mview (org, pipeline, build_number, bazelci_task,
+                            parallel_group_index);
 CREATE INDEX buildkite_job_mview_created_at
     on buildkite_job_mview (created_at);
 CREATE INDEX buildkite_job_mview_state