blob: c3cb9bf1de2198b0f7eb29d17b5155c976f54fdc [file] [log] [blame]
Yingyi Bu947fc3c2016-01-27 20:14:47 -08001/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19
20drop dataverse TinySocial if exists;
21create dataverse TinySocial;
22use dataverse TinySocial;
23
24create type TwitterUserType as open {
25 screen-name: string,
26 lang: string,
27 friends_count: int64,
28 statuses_count: int64,
29 name: string,
30 followers_count: int64
31}
32
33create type TweetMessageType as closed {
34 tweetid: string,
35 user: TwitterUserType,
36 sender-location: point?,
37 send-time: datetime,
38 referred-topics: {{ string }},
39 message-text: string
40}
41
42create dataset TweetMessages(TweetMessageType)
43primary key tweetid;
44
45for $t in dataset TweetMessages
46group by $d:= get-hour($t.send-time) with $t
47return { "hour": $d,
48 "count": count($t),
49 "finer": for $k in $t
50 group by $min:= get-minute($k.create_at) with $k
51 order by $min
52 return { "minute": $min, "sum": count($k)}
53}