First commit
This commit is contained in:
BIN
Automate+Pipelines/plugins/helpers/.DS_Store
vendored
Normal file
BIN
Automate+Pipelines/plugins/helpers/.DS_Store
vendored
Normal file
Binary file not shown.
5
Automate+Pipelines/plugins/helpers/__init__.py
Normal file
5
Automate+Pipelines/plugins/helpers/__init__.py
Normal file
@@ -0,0 +1,5 @@
|
||||
from helpers.sql_queries import SqlQueries
|
||||
|
||||
__all__ = [
|
||||
'SqlQueries',
|
||||
]
|
||||
42
Automate+Pipelines/plugins/helpers/sql_queries.py
Normal file
42
Automate+Pipelines/plugins/helpers/sql_queries.py
Normal file
@@ -0,0 +1,42 @@
|
||||
class SqlQueries:
|
||||
songplay_table_insert = ("""
|
||||
SELECT
|
||||
md5(events.sessionid || events.start_time) songplay_id,
|
||||
events.start_time,
|
||||
events.userid,
|
||||
events.level,
|
||||
songs.song_id,
|
||||
songs.artist_id,
|
||||
events.sessionid,
|
||||
events.location,
|
||||
events.useragent
|
||||
FROM (SELECT TIMESTAMP 'epoch' + ts/1000 * interval '1 second' AS start_time, *
|
||||
FROM staging_events
|
||||
WHERE page='NextSong') events
|
||||
LEFT JOIN staging_songs songs
|
||||
ON events.song = songs.title
|
||||
AND events.artist = songs.artist_name
|
||||
AND events.length = songs.duration
|
||||
""")
|
||||
|
||||
user_table_insert = ("""
|
||||
SELECT distinct userid, firstname, lastname, gender, level
|
||||
FROM staging_events
|
||||
WHERE page='NextSong'
|
||||
""")
|
||||
|
||||
song_table_insert = ("""
|
||||
SELECT distinct song_id, title, artist_id, year, duration
|
||||
FROM staging_songs
|
||||
""")
|
||||
|
||||
artist_table_insert = ("""
|
||||
SELECT distinct artist_id, artist_name, artist_location, artist_latitude, artist_longitude
|
||||
FROM staging_songs
|
||||
""")
|
||||
|
||||
time_table_insert = ("""
|
||||
SELECT start_time, extract(hour from start_time), extract(day from start_time), extract(week from start_time),
|
||||
extract(month from start_time), extract(year from start_time), extract(dayofweek from start_time)
|
||||
FROM songplays
|
||||
""")
|
||||
Reference in New Issue
Block a user