Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Het wanderbricks schema in de samples catalogus bevat een gegevensset van een gesimuleerd reisboekingsplatform. Het model modeleert een marketplace voor vakantieverhuur, met tabellen met betrekking tot gebruikers en hosts, eigenschappenvermeldingen en bestemmingen, boekingen en betalingen, beoordelingen en ondersteuningslogboeken en clickstream-activiteiten.
Gebruik deze gegevensset om pijplijnen voor data engineering, analysedashboards en machine learning-werkstromen te verkennen zonder uw eigen gegevens te laden.
Toegang tot de gegevensset
De Wanderbricks-gegevensset wordt vooraf geladen in de samples catalogus en is beschikbaar in werkruimten met Unity Catalog.
Alle tabellen in het schema weergeven:
SHOW TABLES IN samples.wanderbricks;
Een voorbeeld van gegevens in een specifieke tabel bekijken:
SELECT *
FROM samples.wanderbricks.<table-name>
LIMIT 10;
Vervang <table-name> door de tabel die u wilt verkennen, bijvoorbeeld bookings of reviews.
Tabellen
Het wanderbricks schema bevat de volgende tabellen. Voer SHOW TABLES IN samples.wanderbricks uit voor de volledige lijst.
| Tabel | Beschrijving |
|---|---|
users |
Gebruikersprofielen, waaronder naam, e-mail, land en gebruikerstype. |
hosts |
Hostprofielen die zijn gekoppeld aan vastgoedsvermeldingen, inclusief account- en contactgegevens. |
properties |
Vastgoedvermeldingen met details zoals titel, type, prijs en bestemming. |
bookings |
Boekingsrecords met in- en uitcheckdatums, aantal gasten, totale bedragen en status. |
payments |
Betalingsrecords met methoden, bedrag, status en boekingsreferenties. |
booking_updates |
Registraties van wijzigingsstatus voor data capture in CDC-pijplijnen. |
reviews |
Gebruikersbeoordelingen voor objecten, waaronder beoordelingen, opmerkingen en een is_deleted markering voor zachte verwijderingen. |
clickstream |
Gebruikersactiviteit gebeurtenissen (weergaven, klikken, zoekopdrachten, filters) met geneste metagegevens voor het apparaat en de verwijzer. |
page_views |
Paginaweergavegebeurtenissen die zijn gekoppeld aan gebruikers en eigenschappen. |
customer_support_logs |
Ondersteuningsticketlogboeken met geneste matrices van berichten, inclusief afzender en gevoel. |
destinations |
Bestemmingen met namen en beschrijvingen die worden genoemd in vastgoedvermeldingen. |
Primaire tabelrelaties
In het volgende diagram ziet u de verbindingen tussen gebruikers, boekingen, eigenschappen en gerelateerde tabellen.
- Gebruikers en hosts
-
usersvertegenwoordigt reizigers en zakelijke klanten. -
hostsvertegenwoordigt vastgoedeigenaren en beheerders.
-
- Eigenschappen en bestemmingen
- Elke rij in
propertiesis een vermelding die eigendom is van een host. -
propertiesverwijst naardestinationsom te modelleren waar de vermelding zich bevindt.
- Elke rij in
- Boekingen en betalingen
-
bookingsverbindt reizigers (user_id) met eigenschappen (property_id). -
paymentsenbooking_updatesverwijzenbooking_idom financiƫle transacties en statuswijzigingen vast te leggen.
-
- Gedrag en ervaring
-
clickstreamenpage_viewshoud bij hoe gebruikers door vermeldingen bladeren en ermee werken. -
reviewsregistreert feedback na een verblijf van gebruikers en locaties. -
customer_support_logsrecords ondersteunen interacties die zijn gekoppeld aan een gebruiker.
-
Voorbeeldvragen
In de volgende voorbeelden ziet u hoe u een query uitvoert op de Wanderbricks-gegevensset.
Gebruikers, boekingen en eigenschappen koppelen
Retourneer recente reserveringen met gast- en eigenschapsgegevens:
SQL
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;
Python
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)
Clickstream-gebeurtenissen per apparaat analyseren
Samenvatten van betrokkenheid per type evenement en apparaat:
SQL
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;
Python
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)
Gemiddelde beoordelingen per eigenschap berekenen
Zoek de hoogst beoordeelde eigenschappen met voldoende beoordelingsvolume:
SQL
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;
Python
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)