Documentation ¶
Index ¶
- Constants
- Variables
- func NewBtTable(ctx context.Context, projectID, instanceID, tableID string) (*bigtable.Table, error)
- func ReadBranchTableName(ctx context.Context, bucket, versionFile string) (string, error)
- func SetupBigtable(ctx context.Context, data map[string]string) (*bigtable.Table, error)
- type LandingPageData
- type LandingPageResponse
- type Metadata
- type Node
- type ObsProp
- type ObsTimeSeries
- type PlacePopInfo
- type PlaceStatsVar
- type PopObs
- type PropLabelCache
- type PropValueCache
- type RankKey
- type RelatedPlacesInfo
- type SeriesByRank
- type Server
- func (s *Server) GetLandingPageData(ctx context.Context, in *pb.GetLandingPageDataRequest) (*pb.GetLandingPageDataResponse, error)
- func (s *Server) GetLocationsRankings(ctx context.Context, in *pb.GetLocationsRankingsRequest) (*pb.GetLocationsRankingsResponse, error)
- func (s *Server) GetObservations(ctx context.Context, in *pb.GetObservationsRequest) (*pb.GetObservationsResponse, error)
- func (s *Server) GetPlaceObs(ctx context.Context, in *pb.GetPlaceObsRequest) (*pb.GetPlaceObsResponse, error)
- func (s *Server) GetPlaceStatDateWithinPlace(ctx context.Context, in *pb.GetPlaceStatDateWithinPlaceRequest) (*pb.GetPlaceStatDateWithinPlaceResponse, error)
- func (s *Server) GetPlaceStatVars(ctx context.Context, in *pb.GetPlaceStatVarsRequest) (*pb.GetPlaceStatVarsResponse, error)
- func (s *Server) GetPlaceStatVarsUnion(ctx context.Context, in *pb.GetPlaceStatVarsUnionRequest) (*pb.GetPlaceStatVarsUnionResponse, error)
- func (s *Server) GetPlaceStatsVar(ctx context.Context, in *pb.GetPlaceStatsVarRequest) (*pb.GetPlaceStatsVarResponse, error)
- func (s *Server) GetPlacesIn(ctx context.Context, in *pb.GetPlacesInRequest) (*pb.GetPlacesInResponse, error)
- func (s *Server) GetPopObs(ctx context.Context, in *pb.GetPopObsRequest) (*pb.GetPopObsResponse, error)
- func (s *Server) GetPopulations(ctx context.Context, in *pb.GetPopulationsRequest) (*pb.GetPopulationsResponse, error)
- func (s *Server) GetPropertyLabels(ctx context.Context, in *pb.GetPropertyLabelsRequest) (*pb.GetPropertyLabelsResponse, error)
- func (s *Server) GetPropertyValues(ctx context.Context, in *pb.GetPropertyValuesRequest) (*pb.GetPropertyValuesResponse, error)
- func (s *Server) GetRelatedLocations(ctx context.Context, in *pb.GetRelatedLocationsRequest) (*pb.GetRelatedLocationsResponse, error)
- func (s *Server) GetStatAll(ctx context.Context, in *pb.GetStatAllRequest) (*pb.GetStatAllResponse, error)
- func (s *Server) GetStatCollection(ctx context.Context, in *pb.GetStatCollectionRequest) (*pb.GetStatCollectionResponse, error)
- func (s *Server) GetStatSeries(ctx context.Context, in *pb.GetStatSeriesRequest) (*pb.GetStatSeriesResponse, error)
- func (s *Server) GetStatSet(ctx context.Context, in *pb.GetStatSetRequest) (*pb.GetStatSetResponse, error)
- func (s *Server) GetStatSetSeries(ctx context.Context, in *pb.GetStatSetSeriesRequest) (*pb.GetStatSetSeriesResponse, error)
- func (s *Server) GetStatValue(ctx context.Context, in *pb.GetStatValueRequest) (*pb.GetStatValueResponse, error)
- func (s *Server) GetStats(ctx context.Context, in *pb.GetStatsRequest) (*pb.GetStatsResponse, error)
- func (s *Server) GetTriples(ctx context.Context, in *pb.GetTriplesRequest) (*pb.GetTriplesResponse, error)
- func (s *Server) Query(ctx context.Context, in *pb.QueryRequest) (*pb.QueryResponse, error)
- func (s *Server) Search(ctx context.Context, in *pb.SearchRequest) (*pb.SearchResponse, error)
- func (s *Server) SubscribeBranchCacheUpdate(ctx context.Context, ...) error
- func (s *Server) Translate(ctx context.Context, in *pb.TranslateRequest) (*pb.TranslateResponse, error)
- type SourceSeries
- type StatisticalVariable
- type Triple
- type TriplesCache
Constants ¶
const LowestRank = 100
LowestRank is the lowest ranking score.
Variables ¶
var RelatedLocationsPrefixMap = map[bool]map[bool]string{ // contains filtered or unexported fields }
RelatedLocationsPrefixMap is a map from different scenarios to key prefix for RelatedLocations cache.
The three levels of keys are: - Whether related locations have the same ancestor. - Whether related locations have the same place type. - Whether closeness computaion is per capita.
var StatsRanking = map[RankKey]int{
{"CensusPEP", "CensusPEPSurvey"}: 0,
{"CensusACS5YearSurvey", "CensusACS5yrSurvey"}: 1,
{"CensusACS5YearSurvey_AggCountry", "dcAggregate/CensusACS5yrSurvey"}: 1,
{"CensusUSAMedianAgeIncome", "CensusACS5yrSurvey"}: 1,
{"EurostatData", "EurostatRegionalPopulationData"}: 2,
{"WorldDevelopmentIndicators", ""}: 3,
{"BLS_LAUS", "BLSSeasonallyUnadjusted"}: 0,
{"EurostatData", ""}: 1,
{"NYT_COVID19", "NYT_COVID19_GitHub"}: 0,
{"CDC500", "AgeAdjustedPrevalence"}: 0,
}
StatsRanking is used to rank multiple source series for the same StatisticalVariable, where lower value means higher ranking. The ranking score ranges from 0 to 100.
Functions ¶
func NewBtTable ¶
func NewBtTable( ctx context.Context, projectID, instanceID, tableID string) ( *bigtable.Table, error)
NewBtTable creates a new bigtable.Table instance.
func ReadBranchTableName ¶ added in v1.14.0
ReadBranchTableName reads branch cache folder from GCS.
Types ¶
type LandingPageData ¶
type LandingPageData struct {
Data map[string]*ObsTimeSeries `json:"data,omitempty"`
}
LandingPageData represents the landing page cache data.
type LandingPageResponse ¶
type LandingPageResponse struct { Data map[string]map[string]*ObsTimeSeries `json:"data,omitempty"` AllChildPlaces map[string][]*place `json:"allChildPlaces,omitempty"` ChildPlacesType string `json:"childPlacesType,omitempty"` ChildPlaces []string `json:"childPlaces,omitempty"` ParentPlaces []string `json:"parentPlaces,omitempty"` SimilarPlaces []string `json:"similarPlaces,omitempty"` NearbyPlaces []string `json:"nearbyPlaces,omitempty"` }
LandingPageResponse represents all the data needed for rendering landing page.
type Metadata ¶
type Metadata struct { Mappings []*base.Mapping OutArcInfo map[string]map[string][]translator.OutArcInfo InArcInfo map[string][]translator.InArcInfo SubTypeMap map[string]string Bq string BtProject string BranchBtInstance string }
Metadata represents the metadata used by the server.
func NewMetadata ¶
NewMetadata initialize the metadata for translator.
type Node ¶
type Node struct { Dcid string `json:"dcid,omitempty"` Name string `json:"name,omitempty"` ProvID string `json:"provenanceId,omitempty"` Value string `json:"value,omitempty"` Types []string `json:"types,omitempty"` }
Node represents a information about a node.
type ObsTimeSeries ¶
type ObsTimeSeries struct { Data map[string]float64 `json:"data,omitempty"` PlaceName string `json:"placeName,omitempty"` PlaceDcid string `json:"placeDcid,omitempty"` SourceSeries []*SourceSeries `json:"sourceSeries,omitempty"` ProvenanceURL string `json:"provenanceUrl,omitempty"` }
ObsTimeSeries repesents multiple time series data.
type PlacePopInfo ¶
type PlacePopInfo struct { PlaceID string `json:"dcid,omitempty"` PopulationID string `json:"population,omitempty"` }
PlacePopInfo contains basic info for a place and a population.
type PlaceStatsVar ¶
type PlaceStatsVar struct {
StatVarIds []string `json:"statVarIds,omitempty"`
}
PlaceStatsVar contains the place stats var list.
type PopObs ¶
type PopObs struct { PopulationID string `json:"dcid,omitempty"` ObservationValue string `json:"observation,omitempty"` }
PopObs represents a pair of population and observation node.
type PropLabelCache ¶
type PropLabelCache struct { InLabels []string `json:"inLabels"` OutLabels []string `json:"outLabels"` }
PropLabelCache represents the json structure returned by the BT Prop cache
type PropValueCache ¶
type PropValueCache struct {
Nodes []*Node `json:"entities,omitempty"`
}
PropValueCache represents the json structure returned by the BT PropVal cache
type RelatedPlacesInfo ¶
type RelatedPlacesInfo struct { RelatedPlaces []string `json:"relatedPlaces,omitempty"` RankFromTop int32 `json:"rankFromTop,omitempty"` RankFromBottom int32 `json:"rankFromBottom,omitempty"` }
RelatedPlacesInfo represents the json structure returned by the RelatedPlaces cache.
type SeriesByRank ¶
type SeriesByRank []*pb.SourceSeries
SeriesByRank implements sort.Interface for []*SourceSeries based on the rank score. protobuf version of byRank. TODO(shifucun): add observationPeriod, unit, scalingFactor to ranking decision, so the ranking is deterministic.
func (SeriesByRank) Len ¶
func (a SeriesByRank) Len() int
func (SeriesByRank) Less ¶
func (a SeriesByRank) Less(i, j int) bool
func (SeriesByRank) Swap ¶
func (a SeriesByRank) Swap(i, j int)
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server holds resources for a mixer server
func NewServer ¶
func NewServer( bqClient *bigquery.Client, baseTable *bigtable.Table, branchTable *bigtable.Table, metadata *Metadata) *Server
NewServer creates a new server instance.
func (*Server) GetLandingPageData ¶
func (s *Server) GetLandingPageData( ctx context.Context, in *pb.GetLandingPageDataRequest) ( *pb.GetLandingPageDataResponse, error)
GetLandingPageData implements API for Mixer.GetLandingPageData.
TODO(shifucun):For each related place, it is supposed to have dcid, name and population but it's not complete now as the client in most cases only requires the dcid. Should consider have the full name, even with parent place abbreviations like "CA" filled in here so the client won't bother to fetch those again.
func (*Server) GetLocationsRankings ¶
func (s *Server) GetLocationsRankings(ctx context.Context, in *pb.GetLocationsRankingsRequest) (*pb.GetLocationsRankingsResponse, error)
GetLocationsRankings implements API for Mixer.GetLocationsRankings.
func (*Server) GetObservations ¶
func (s *Server) GetObservations( ctx context.Context, in *pb.GetObservationsRequest) ( *pb.GetObservationsResponse, error)
GetObservations implements API for Mixer.GetObservations.
func (*Server) GetPlaceObs ¶
func (s *Server) GetPlaceObs(ctx context.Context, in *pb.GetPlaceObsRequest) ( *pb.GetPlaceObsResponse, error)
GetPlaceObs implements API for Mixer.GetPlaceObs.
func (*Server) GetPlaceStatDateWithinPlace ¶
func (s *Server) GetPlaceStatDateWithinPlace( ctx context.Context, in *pb.GetPlaceStatDateWithinPlaceRequest) ( *pb.GetPlaceStatDateWithinPlaceResponse, error)
GetPlaceStatDateWithinPlace implements API for Mixer.GetPlaceStatDateWithinPlace. Endpoint: /place/stat/date/within-place
func (*Server) GetPlaceStatVars ¶
func (s *Server) GetPlaceStatVars( ctx context.Context, in *pb.GetPlaceStatVarsRequest) ( *pb.GetPlaceStatVarsResponse, error)
GetPlaceStatVars implements API for Mixer.GetPlaceStatVars.
func (*Server) GetPlaceStatVarsUnion ¶
func (s *Server) GetPlaceStatVarsUnion( ctx context.Context, in *pb.GetPlaceStatVarsUnionRequest) ( *pb.GetPlaceStatVarsUnionResponse, error)
GetPlaceStatVarsUnion implements API for Mixer.GetPlaceStatVarsUnion.
func (*Server) GetPlaceStatsVar ¶
func (s *Server) GetPlaceStatsVar( ctx context.Context, in *pb.GetPlaceStatsVarRequest) ( *pb.GetPlaceStatsVarResponse, error)
GetPlaceStatsVar implements API for Mixer.GetPlaceStatsVar. TODO(shifucun): Migrate clients to use GetPlaceStatVars and deprecate this.
func (*Server) GetPlacesIn ¶
func (s *Server) GetPlacesIn(ctx context.Context, in *pb.GetPlacesInRequest) ( *pb.GetPlacesInResponse, error)
GetPlacesIn implements API for Mixer.GetPlacesIn.
func (*Server) GetPopObs ¶
func (s *Server) GetPopObs(ctx context.Context, in *pb.GetPopObsRequest) ( *pb.GetPopObsResponse, error)
GetPopObs implements API for Mixer.GetPopObs.
func (*Server) GetPopulations ¶
func (s *Server) GetPopulations( ctx context.Context, in *pb.GetPopulationsRequest) ( *pb.GetPopulationsResponse, error)
GetPopulations implements API for Mixer.GetPopulations.
func (*Server) GetPropertyLabels ¶
func (s *Server) GetPropertyLabels(ctx context.Context, in *pb.GetPropertyLabelsRequest) (*pb.GetPropertyLabelsResponse, error)
GetPropertyLabels implements API for Mixer.GetPropertyLabels.
func (*Server) GetPropertyValues ¶
func (s *Server) GetPropertyValues(ctx context.Context, in *pb.GetPropertyValuesRequest) (*pb.GetPropertyValuesResponse, error)
GetPropertyValues implements API for Mixer.GetPropertyValues.
func (*Server) GetRelatedLocations ¶
func (s *Server) GetRelatedLocations(ctx context.Context, in *pb.GetRelatedLocationsRequest) (*pb.GetRelatedLocationsResponse, error)
GetRelatedLocations implements API for Mixer.GetRelatedLocations.
func (*Server) GetStatAll ¶
func (s *Server) GetStatAll(ctx context.Context, in *pb.GetStatAllRequest) ( *pb.GetStatAllResponse, error)
GetStatAll implements API for Mixer.GetStatAll. Endpoint: /stat/set/series/all Endpoint: /stat/all
func (*Server) GetStatCollection ¶
func (s *Server) GetStatCollection( ctx context.Context, in *pb.GetStatCollectionRequest) ( *pb.GetStatCollectionResponse, error)
GetStatCollection implements API for Mixer.GetStatCollection. Endpoint: /stat/set/within-place Endpoint: /stat/collection
func (*Server) GetStatSeries ¶
func (s *Server) GetStatSeries( ctx context.Context, in *pb.GetStatSeriesRequest) ( *pb.GetStatSeriesResponse, error)
GetStatSeries implements API for Mixer.GetStatSeries. Endpoint: /stat/series TODO(shifucun): consilidate and dedup the logic among these similar APIs.
func (*Server) GetStatSet ¶
func (s *Server) GetStatSet(ctx context.Context, in *pb.GetStatSetRequest) ( *pb.GetStatSetResponse, error)
GetStatSet implements API for Mixer.GetStatSet. Endpoint: /stat/set
func (*Server) GetStatSetSeries ¶ added in v1.14.0
func (s *Server) GetStatSetSeries(ctx context.Context, in *pb.GetStatSetSeriesRequest) ( *pb.GetStatSetSeriesResponse, error)
GetStatSetSeries implements API for Mixer.GetStatSetSeries. Endpoint: /v1/stat/set/series
func (*Server) GetStatValue ¶
func (s *Server) GetStatValue(ctx context.Context, in *pb.GetStatValueRequest) ( *pb.GetStatValueResponse, error)
GetStatValue implements API for Mixer.GetStatValue. Endpoint: /stat (/stat/value)
func (*Server) GetStats ¶
func (s *Server) GetStats(ctx context.Context, in *pb.GetStatsRequest) ( *pb.GetStatsResponse, error)
GetStats implements API for Mixer.GetStats. Endpoint: /stat/set/series Endpoint: /bulk/stats
func (*Server) GetTriples ¶
func (s *Server) GetTriples(ctx context.Context, in *pb.GetTriplesRequest) ( *pb.GetTriplesResponse, error)
GetTriples implements API for Mixer.GetTriples.
func (*Server) Query ¶
func (s *Server) Query( ctx context.Context, in *pb.QueryRequest) (*pb.QueryResponse, error)
Query implements API for Mixer.Query.
func (*Server) Search ¶
func (s *Server) Search( ctx context.Context, in *pb.SearchRequest) (*pb.SearchResponse, error)
Search implements API for Mixer.Search.
func (*Server) SubscribeBranchCacheUpdate ¶
func (s *Server) SubscribeBranchCacheUpdate( ctx context.Context, pubsubProjectID, branchCacheBucket, subscriberPrefix, pubsubTopic string) error
SubscribeBranchCacheUpdate subscribe server for branch cache update.
func (*Server) Translate ¶
func (s *Server) Translate(ctx context.Context, in *pb.TranslateRequest) (*pb.TranslateResponse, error)
Translate implements API for Mixer.Translate.
type SourceSeries ¶
type SourceSeries struct { ImportName string `json:"importName,omitempty"` ObservationPeriod string `json:"observationPeriod,omitempty"` MeasurementMethod string `json:"measurementMethod,omitempty"` ScalingFactor string `json:"scalingFactor,omitempty"` Unit string `json:"unit,omitempty"` ProvenanceURL string `json:"provenanceUrl,omitempty"` Val map[string]float64 `json:"val,omitempty"` }
SourceSeries represents time series data for a particular source.
type StatisticalVariable ¶
type StatisticalVariable struct { PopType string `json:"popType,omitempty"` PVs map[string]string `json:"pvs,omitempty"` MeasuredProp string `json:"measuredProp,omitempty"` MeasurementMethod string `json:"measurementMethod,omitempty"` MeasurementDenominator string `json:"measurementDeonominator,omitempty"` MeasurementQualifier string `json:"measurementQualifier,omitempty"` ScalingFactor string `json:"scalingFactor,omitempty"` Unit string `json:"unit,omitempty"` StatType string `json:"statType,omitempty"` }
StatisticalVariable contains key info of population and observation.
type Triple ¶
type Triple struct { SubjectID string `json:"subjectId,omitempty"` SubjectName string `json:"subjectName,omitempty"` SubjectTypes []string `json:"subjectTypes,omitempty"` Predicate string `json:"predicate,omitempty"` ObjectID string `json:"objectId,omitempty"` ObjectName string `json:"objectName,omitempty"` ObjectValue string `json:"objectValue,omitempty"` ObjectTypes []string `json:"objectTypes,omitempty"` ProvenanceID string `json:"provenanceId,omitempty"` }
Triple represents a triples entry in the BT triples cache.
type TriplesCache ¶
type TriplesCache struct {
Triples []*Triple `json:"triples"`
}
TriplesCache represents the json structure returned by the BT triples cache