datasetWanderbricks
O esquema wanderbricks no catálogo samples contém um dataset simulado de plataforma de reserva de viagens. Ele simula um marketplace de aluguel de temporada, com tabelas que abrangem usuários e anfitriões, anúncios de imóveis e destinos, reservas e pagamentos, avaliações e logs de suporte, além da atividade de fluxo de cliques.
Use esse dataset para explorar pipeline de engenharia de dados, painéis analíticos e fluxo de trabalho de machine learning sem carregar seus próprios dados.
Acesse o dataset
O dataset Wanderbricks está pré-carregado no catálogo samples e está disponível no espaço de trabalho habilitado para catálogo do Unity.
Para listar todas as tabelas no esquema:
SHOW TABLES IN samples.wanderbricks;
Para pré-visualizar os dados em uma tabela específica:
SELECT *
FROM samples.wanderbricks.<table-name>
LIMIT 10;
Substitua <table-name> pela tabela que você deseja explorar, por exemplo bookings ou reviews.
Tabelas
O esquema wanderbricks inclui as seguintes tabelas. execução SHOW TABLES IN samples.wanderbricks para a lista completa.
Tabela | Descrição |
|---|---|
| Perfis de usuário, incluindo nome, email, país e tipo de usuário. |
| Perfis de anfitriões vinculados a anúncios de imóveis, incluindo detalhes account e de contato. |
| Listagens de imóveis com detalhes como título, tipo, preço e destino. |
| Registros de reservas com datas de check-in/check-out, número de hóspedes, valores totais e status. |
| Registros de pagamento com método, valor, status e referências de reserva. |
| Reserva de registros de mudança de estado para pipeline de captura de dados de alterações (CDC). |
| Avaliações de usuários para propriedades, incluindo classificações, comentários e um indicador |
| Eventos de atividade do usuário (visualizações, cliques, pesquisas, filtros) com metadados aninhados para dispositivo e site de referência. |
| Eventos view de página vinculados a usuários e propriedades. |
| logs de chamados de suporte com matrizes aninhadas de mensagens, incluindo remetente e sentimento. |
| Destinos turísticos com nomes e descrições, mencionados nos anúncios de imóveis. |
Relações da tabela primária
O diagrama a seguir mostra as conexões entre usuários, reservas, propriedades e tabelas relacionadas.

-
Usuários e anfitriões
usersRepresenta viajantes e clientes empresariais.hostsRepresenta proprietários e operadores de imóveis.
-
Propriedades e destinos
- Cada linha em
propertiesé uma listagem pertencente a um anfitrião. propertieslinks paradestinationspara modelar onde o anúncio está localizado.
- Cada linha em
-
Reservas e pagamentos
bookingsconecta viajantes (user_id) a propriedades (property_id).paymentsebooking_updatesfaz referênciabooking_idpara capturar transações financeiras e mudanças de status.
-
Comportamento e experiência
clickstreamepage_viewsrastreiam como os usuários navegam e interagem com os anúncios.reviewsCaptura o feedback do usuário e da propriedade após a estadia.customer_support_logsOs registros dão suporte a interações vinculadas a um usuário.
Exemplos de consultas
Os exemplos a seguir mostram como consultar o dataset Wanderbricks.
Junte-se a usuários, reservas e propriedades.
Retornar reservas recentes com detalhes do hóspede e da propriedade:
- SQL
- Python
SELECT
u.name AS guest_name,
p.title AS property_title,
b.check_in,
b.check_out,
b.total_amount,
b.status
FROM samples.wanderbricks.bookings AS b
JOIN samples.wanderbricks.users AS u
ON b.user_id = u.user_id
JOIN samples.wanderbricks.properties AS p
ON b.property_id = p.property_id
ORDER BY b.check_in DESC
LIMIT 10;
bookings_df = spark.read.table("samples.wanderbricks.bookings")
users_df = spark.read.table("samples.wanderbricks.users")
properties_df = spark.read.table("samples.wanderbricks.properties")
result_df = (
bookings_df
.join(users_df, bookings_df.user_id == users_df.user_id)
.join(properties_df, bookings_df.property_id == properties_df.property_id)
.select(
users_df.name.alias("guest_name"),
properties_df.title.alias("property_title"),
bookings_df.check_in,
bookings_df.check_out,
bookings_df.total_amount,
bookings_df.status
)
.orderBy(bookings_df.check_in.desc())
.limit(10)
)
display(result_df)
Analise eventos de fluxo de cliques por dispositivo.
Resuma o engajamento por tipo de evento e dispositivo:
- SQL
- Python
SELECT
metadata.device AS device_type,
event,
COUNT(*) AS event_count
FROM samples.wanderbricks.clickstream
GROUP BY metadata.device, event
ORDER BY event_count DESC;
from pyspark.sql.functions import col, count
clickstream_df = spark.read.table("samples.wanderbricks.clickstream")
result_df = (
clickstream_df
.groupBy(col("metadata.device").alias("device_type"), col("event"))
.agg(count("*").alias("event_count"))
.orderBy(col("event_count").desc())
)
display(result_df)
Calcular a classificação média por propriedade.
Encontre os imóveis mais bem avaliados com um volume suficiente de avaliações:
- SQL
- Python
SELECT
p.title AS property_title,
p.property_type,
ROUND(AVG(r.rating), 2) AS avg_rating,
COUNT(r.rating) AS review_count
FROM samples.wanderbricks.properties AS p
JOIN samples.wanderbricks.reviews AS r
ON p.property_id = r.property_id
WHERE r.is_deleted = false
GROUP BY p.title, p.property_type
HAVING COUNT(r.rating) >= 5
ORDER BY avg_rating DESC
LIMIT 10;
from pyspark.sql.functions import avg, count, round as pyspark_round, col
properties_df = spark.read.table("samples.wanderbricks.properties")
reviews_df = spark.read.table("samples.wanderbricks.reviews")
result_df = (
properties_df
.join(reviews_df, properties_df.property_id == reviews_df.property_id)
.where(reviews_df.is_deleted == False)
.groupBy(
properties_df.title.alias("property_title"),
properties_df.property_type
)
.agg(
pyspark_round(avg(reviews_df.rating), 2).alias("avg_rating"),
count(reviews_df.rating).alias("review_count")
)
.filter(col("review_count") >= 5)
.orderBy(col("avg_rating").desc())
.limit(10)
)
display(result_df)