Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Katalogdaki wanderbrickssamples şema, sanal bir seyahat rezervasyon platformu veri kümesi içerir. Kullanıcıları ve ev sahiplerini, tesis listelerini ve varış noktalarını, rezervasyonları ve ödemeleri, incelemeleri ve destek günlüklerini ve tıklama akışı etkinliğini kapsayan tabloları içeren bir tatil kiralama marketi modellemektedir.
Kendi verilerinizi yüklemeden veri mühendisliği işlem hatlarını, analiz panolarını ve makine öğrenmesi iş akışlarını keşfetmek için bu veri kümesini kullanın.
Veri kümesine erişme
Wanderbricks veri kümesi kataloğa önceden yüklenmiştir samples ve Unity Kataloğu etkin çalışma alanlarında kullanılabilir.
Şemadaki tüm tabloları listelemek için:
SQL
SHOW TABLES IN samples.wanderbricks;
Python
display(spark.sql("SHOW TABLES IN samples.wanderbricks"))
Belirli bir tablodaki verilerin önizlemesini görüntülemek için:
SQL
SELECT *
FROM samples.wanderbricks.<table-name>
LIMIT 10;
Python
display(spark.read.table("samples.wanderbricks.<table-name>").limit(10))
Keşfetmek istediğiniz tabloyla, örneğin <table-name> veya bookings, yerine reviews değiştirin.
Tables
Şema wanderbricks aşağıdaki tabloları içerir. Tam liste için komutunu çalıştırın SHOW TABLES IN samples.wanderbricks .
| Tabela | Açıklama |
|---|---|
users |
Ad, e-posta, ülke veya bölge ve kullanıcı türü gibi kullanıcı profilleri. |
hosts |
Hesap ve iletişim ayrıntıları dahil, mülk listelerine bağlı ev sahibi profilleri. |
properties |
Başlık, tür, fiyat ve konum gibi ayrıntıları içeren gayrimenkul listeleri. |
bookings |
Check-in/check-out tarihleri, konuk sayısı, toplam tutarlar ve durum ile rezervasyon kayıtları. |
payments |
Yöntem, tutar, durum ve rezervasyon başvurularıyla ödeme kayıtları. |
booking_updates |
Rezervasyon durum değişikliği kayıtları için değişiklik veri yakalama (CDC) işlem hatları. |
reviews |
Özellikler için kullanıcı incelemeleri, derecelendirmeler, yorumlar ve is_deleted yumuşak silme bayrakları dahil. |
clickstream |
Kullanıcı etkinliği olayları (görünümler, tıklamalar, aramalar, filtreler), cihaz ve kaynaklara ait iç içe meta verilerle birlikte. |
page_views |
Kullanıcılara ve özelliklere bağlı sayfa görünümü olayları. |
customer_support_logs |
Gönderen ve duyguyu içeren iç içe geçmiş mesaj dizileri ile destek bileti günlükleri. |
destinations |
Mülk listelerinin referans verdiği, adları ve açıklamaları olan hedef konumlar. |
Birincil tablo ilişkileri
Aşağıdaki diyagramda kullanıcılar, rezervasyonlar, özellikler ve ilgili tablolar arasındaki bağlantılar gösterilmektedir.
- Kullanıcılar ve konaklar
-
usersseyahat edenleri ve iş müşterilerini temsil eder. -
hoststaşınmaz sahiplerini ve işleticilerini temsil eder.
-
- Özellikler ve hedefler
-
propertiesiçindeki her satır bir ev sahibine ait bir listeliktir. -
propertiesdestinationslistelemenin bulunduğu modele bağlantılar.
-
- Rezervasyonlar ve ödemeler
-
bookingsgezginleri (user_id) özelliklere (property_id) bağlar. -
paymentsvebooking_updates, finansal işlemleri ve durum değişikliklerini yakalamak amacıylabooking_id'ye atıfta bulunur.
-
- Davranış ve deneyim
-
clickstreamvepage_viewskullanıcıların listelemelere nasıl göz atıp bu listelerle etkileşime geçtiğini izleyin. -
reviewskullanıcıdan ve tesisten konaklama sonrası geri bildirim yakalar. -
customer_support_logskayıtları, bir kullanıcıya bağlı etkileşimleri destekler.
-
Örnek sorgular
Aşağıdaki örneklerde Wanderbricks veri kümesini sorgulama gösterilmektedir.
Kullanıcılara, rezervasyonlara ve tesislere katılma
Konuk ve tesis ayrıntılarıyla son rezervasyonları iade edin:
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)
Cihaza göre tıklama akışı olaylarını analiz etme
Olay türüne ve cihaza göre etkileşimi özetleyin:
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)
Özellik başına ortalama derecelendirmeleri hesapla
Yeterli inceleme hacmine sahip en yüksek dereceli özellikleri bulun:
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)