select id, any(actor_name) as name, uniqExact(movie_id) as num_movies, avg(rank) as avg_rank, uniqExact(genre) as unique_genres, uniqExact(director_name) as uniq_directors, max(created_at) as updated_at from ( select imdb.actors.id as id, concat(imdb.actors.first_name, ' ', imdb.actors.last_name) as actor_name, imdb.movies.id as movie_id, imdb.movies.rank as rank, genre, concat(imdb.directors.first_name, ' ', imdb.directors.last_name) as director_name, created_at from imdb.actors join imdb.roles on imdb.roles.actor_id = imdb.actors.id leftjoin imdb.movies on imdb.movies.id = imdb.roles.movie_id leftjoin imdb.genres on imdb.genres.movie_id = imdb.movies.id leftjoin imdb.movie_directors on imdb.movie_directors.movie_id = imdb.movies.id leftjoin imdb.directors on imdb.directors.id = imdb.movie_directors.director_id ) groupby id orderby num_movies desc limit 5;
create materialized view imdb.actor_summary_mv refresh every1minuteto imdb.actor_summary as select id, any(actor_name) as name, uniqExact(movie_id) as num_movies, avg(rank) as avg_rank, uniqExact(genre) as unique_genres, uniqExact(director_name) as uniq_directors, max(created_at) as updated_at from ( select imdb.actors.id as id, concat(imdb.actors.first_name, ' ', imdb.actors.last_name) as actor_name, imdb.movies.id as movie_id, imdb.movies.rank as rank, genre, concat(imdb.directors.first_name, ' ', imdb.directors.last_name) as director_name, created_at from imdb.actors join imdb.roles on imdb.roles.actor_id = imdb.actors.id leftjoin imdb.movies on imdb.movies.id = imdb.roles.movie_id leftjoin imdb.genres on imdb.genres.movie_id = imdb.movies.id leftjoin imdb.movie_directors on imdb.movie_directors.movie_id = imdb.movies.id leftjoin imdb.directors on imdb.directors.id = imdb.movie_directors.director_id ) groupby id orderby num_movies desc limit 5;
step-3: 模拟数据更新
insert into imdb.actors values (845466, 'Clicky', 'McClickHouse', 'M'); insert into imdb.roles select845466as actor_id, id as movie_id, 'Himself'as role, now() as created_at from imdb.movies limit 10000, 910;