Data Lake Formation (DLF) menyediakan fitur ekstraksi metadata dan eksplorasi data. Topik ini menjelaskan cara menggunakan DLF untuk menganalisis data sampel perilaku pengguna Taobao.
Prasyarat
Sebuah bucket Object Storage Service (OSS) telah dibuat. Untuk informasi lebih lanjut tentang cara membuat bucket, lihat Buat sebuah bucket.
Proses
Aktivasi layanan: Buat akun Alibaba Cloud dan aktifkan DLF serta OSS.
Unduh dan impor dataset sampel: Unduh data sampel ke file CSV dan unggah file tersebut ke OSS.
Ekstraksi metadata: Gunakan fitur ekstraksi metadata dari DLF untuk secara otomatis mengidentifikasi skema file dan membuat tabel metadata.
Eksplorasi data: Gunakan fitur eksplorasi data dari DLF untuk menganalisis perilaku pengguna, termasuk keterlibatan pengguna dan model corong.
Deskripsi data
Dataset perilaku pengguna Taobao yang digunakan dalam kompetisi Alibaba Cloud Tianchi digunakan dalam pengujian. Untuk meningkatkan performa pengujian, dataset dipangkas. Dataset menyimpan data perilaku pengguna dan data sampel produk dalam format CSV.
Untuk informasi lebih lanjut tentang dataset perilaku pengguna Taobao, kunjungi https://tianchi.aliyun.com/dataset/dataDetail?dataId=46.
Rentang waktu data dalam dataset: 1 Desember 2014 hingga 7 Desember 2014.
Format data:
Tabel Pengguna
Kolom | Deskripsi | Catatan |
user_id | ID pengguna. | Diambil sampel dan dihilangkan identitasnya. ID ini bukan ID asli. |
item_id | ID item. | Dihilangkan identitasnya. ID ini bukan ID asli. |
behavior_type | Jenis perilaku pengguna. | Nilai valid: 1, 2, 3, dan 4. 1 menunjukkan klik, 2 menunjukkan tambah ke favorit, 3 menunjukkan tambah ke keranjang, dan 4 menunjukkan pembayaran. |
user_geohash | Lokasi geografis pengguna saat perilaku terjadi. Nilainya mungkin kosong. | Dihasilkan berdasarkan lintang dan bujur pengguna serta menggunakan algoritma rahasia. |
item_category | ID kategori item. | Dihilangkan identitasnya. ID ini bukan ID asli. |
time | Waktu saat perilaku terjadi. | Akurat hingga jam terdekat. |
Tabel Item
Kolom | Deskripsi | Catatan |
item_id | ID item. | Diambil sampel dan dihilangkan identitasnya. ID ini bukan ID asli. |
item_geohash | Lokasi geografis item saat perilaku terjadi. Nilainya mungkin kosong. | Dihasilkan berdasarkan lintang dan bujur item serta menggunakan algoritma rahasia. |
item_category | ID kategori item. | Dihilangkan identitasnya. ID ini bukan ID asli. |
Prosedur
Langkah 1: Aktifkan DLF dan OSS
Masuk ke konsol DLF.
Aktifkan DLF dan OSS serta berikan izin yang diperlukan. (Lewati langkah ini jika Anda sudah mengaktifkan layanan.)
Jika Anda belum mengaktifkan layanan DLF, Anda akan diminta untuk mengaktifkan layanan saat masuk ke konsol. Klik Activate Data Lake Formation for Free.
Setelah layanan diaktifkan, kembali ke halaman utama konsol DLF. Anda akan diminta untuk mengaktifkan OSS dan memberikan DLF izin untuk mengakses sumber data dependen. Klik Activate untuk mengaktifkan OSS dan memberikan izin yang diperlukan.
Halaman utama konsol DLF muncul.
Langkah 2: Unggah file data yang akan dianalisis ke OSS
Unduh kode sampel ke disk lokal.
Ekstrak paket yang diunduh. File user_behavior_data diperoleh. File ini berisi folder item dan user, yang berisi file data CSV. Pengujian pada bagian ini berfokus pada folder user. Gambar berikut menunjukkan contoh sebagian data dalam folder.

Unggah folder user_behavior_data ke OSS. Untuk informasi lebih lanjut, lihat Unggah Sederhana.
Gambar berikut menunjukkan struktur direktori di OSS. item dan user menunjukkan folder data dari dua tabel.
CatatanAnda harus menghapus file .DS_Store di folder.

Langkah 3: Ekstrak metadata dari DLF
Masuk ke konsol DLF.
Buat database.
Di panel navigasi di sebelah kiri, pilih .
Klik tab Database, pilih katalog yang ingin Anda kelola dari daftar drop-down Catalog List, lalu klik Create Database.
Di halaman yang muncul, konfigurasikan parameter berikut dan klik OK.
Catalog: Pilih katalog yang diinginkan.
Database Name: Masukkan nama database.
Database Description: Opsional. Masukkan deskripsi database.
Select Path: Pilih jalur OSS tempat file user_behavior_data dari langkah sebelumnya disimpan.
Periksa bahwa database telah dibuat. Gambar berikut menunjukkan database yang telah dibuat.

Gunakan DLF untuk mengekstrak metadata.
Di panel navigasi di sebelah kiri, pilih .
Di halaman Penemuan Metadata, klik Create Extraction Task. Di halaman yang muncul, konfigurasikan parameter. Untuk informasi lebih lanjut, lihat Penemuan Metadata.
Konfigurasikan parameter di bagian Set Sumber Ekstraksi dan klik Next.

Tentukan parameter Database Tujuan dan klik Next.

Konfigurasikan parameter di bagian Set Tugas Ekstraksi.
RAM Role: Pilih peran RAM yang akan digunakan. Secara default, peran AliyunDLFWorkFlowDefaultRole yang telah diberi izin yang diperlukan pada fase aktivasi ditampilkan.
Execution Policy: Pilih Manual.
Extraction Policy: Atur parameter ini ke Extract All. Saat DLF mengekstrak metadata, semua metadata di setiap file dipindai. Jika volume data besar, proses ekstraksi ini dapat memakan waktu. Namun, hasil dari Ekstrak Semua lebih akurat.

Konfirmasi informasi dan klik Save and Execute.

Sistem kembali ke halaman Penemuan Metadata. Tugas baru dibuat dan dieksekusi secara otomatis. Jika jumlah data sangat besar, metode ekstraksi ini dapat memakan waktu.
Geser penunjuk ke ikon tanda tanya di kolom status. Pesan ditampilkan, menunjukkan bahwa dua tabel metadata telah dibuat.

Kueri tabel.
Klik tautan Database. Di halaman yang muncul, klik tab Table List untuk melihat informasi tabel di database.

Klik nama tabel untuk memeriksa apakah struktur tabel yang diekstrak sesuai dengan yang diharapkan.


Langkah 4: Analisis data perilaku pengguna
Proses analisis data terdiri dari tiga langkah:
Pratinjau dan periksa data.
Pra-pemrosesan data.
Analisis keterlibatan pengguna, corong, dan popularitas item.
Pratinjau dan periksa data
Di panel navigasi di sebelah kiri, klik Data Exploration. Di editor SQL, masukkan pernyataan berikut untuk melihat data file:
SET spark.sql.legacy.timeParserPolicy=LEGACY;
-- Pratinjau data.
SELECT * FROM `demo_db`.`user` limit 10;
SELECT * FROM `demo_db`.`item` limit 10;
-- Jumlah pengguna.
SELECT COUNT(DISTINCT user_id) FROM `demo_db`.`user`;
-- Jumlah item.
SELECT COUNT(DISTINCT item_id) FROM `demo_db`.`item`;
-- Jumlah catatan perilaku.
SELECT COUNT(*) FROM `demo_db`.`user`;Gambar berikut menunjukkan hasilnya.

Pra-pemrosesan data
Anda dapat memproses data mentah untuk meningkatkan keterbacaan data dan performa analisis.
Buat tabel user_log dalam format Parquet dan partisi tabel berdasarkan tanggal.
Konversikan nilai behavior_type menjadi string yang mudah dipahami. Nilai valid: 1, 2, 3, dan 4. 1 menunjukkan klik, 2 menunjukkan tambah ke favorit, 3 menunjukkan tambah ke keranjang, dan 4 menunjukkan pembayaran.
Pisahkan kolom waktu log menjadi kolom tanggal dan jam, dan tambahkan kolom hari dalam seminggu. Ini membantu Anda menganalisis data pada tingkat tanggal dan jam.
Filter bidang yang tidak diperlukan. Lalu, simpan data yang diperlukan di tabel baru bernama user_log.
Perilaku pengguna akan dianalisis berdasarkan tabel baru.
CREATE TABLE `demo_db`.`user_log`
USING PARQUET
PARTITIONED BY (date)
AS SELECT
user_id,
item_id,
CASE
WHEN behavior_type = 1 THEN 'click'
WHEN behavior_type = 2 THEN 'collect'
WHEN behavior_type = 3 THEN 'cart'
WHEN behavior_type = 4 THEN 'pay'
END AS behavior,
item_category,
time,
date_format(time, 'yyyy-MM-dd') AS date,
date_format(time, 'H') AS hour,
date_format(time, 'u') AS day_of_week
FROM `dlf_demo`.`user`;
-- Lihat hasilnya.
SELECT * FROM `demo_db`.`user_log` limit 10; Gambar berikut menunjukkan hasilnya.

Analisis perilaku pengguna
Berdasarkan model corong, analisis perilaku semua pengguna dari klik, tambah ke keranjang, tambah ke favorit hingga pembelian.
-- Analisis membutuhkan waktu 13 detik. SELECT behavior, COUNT(*) AS total FROM `demo_db`.`user_log` GROUP BY behavior ORDER BY total DESCGambar berikut menunjukkan hasilnya.

Analisis perilaku pengguna pada setiap hari dalam seminggu.
-- Analisis membutuhkan waktu 14 detik. SELECT date, day_of_week, COUNT(DISTINCT(user_id)) as uv, SUM(CASE WHEN behavior = 'click' THEN 1 ELSE 0 END) AS click, SUM(CASE WHEN behavior = 'cart' THEN 1 ELSE 0 END) AS cart, SUM(CASE WHEN behavior = 'collect' THEN 1 ELSE 0 END) AS collect, SUM(CASE WHEN behavior = 'pay' THEN 1 ELSE 0 END) AS pay FROM `demo_db`.`user_log` GROUP BY date, day_of_week ORDER BY dateGambar berikut menunjukkan hasilnya. (Hasil analisis terdistorsi karena dataset dipangkas.)
Analisis 10 kategori item paling populer dalam dataset berdasarkan tabel item.
-- Analisis membutuhkan waktu 1 menit dan 10 detik. SELECT item.item_category, COUNT(*) AS times FROM `demo_db`.`item` item JOIN `demo_db`.`user_log` log ON item.item_id = log.item_id WHERE log.behavior='pay' GROUP BY item.item_category ORDER BY times DESC LIMIT 10;Gambar berikut menunjukkan hasilnya.
(Opsional) Unduh hasil analisis.
DLF memungkinkan Anda mengunduh hasil analisis sebagai file CSV. Sebelum pengunduhan, Anda harus menentukan jalur OSS untuk menyimpan hasil analisis. Hasil analisis disimpan ke jalur yang ditentukan.
Di sudut kanan atas halaman Data Exploration, klik Path Settings. Di kotak dialog Pilih Jalur OSS, tentukan parameter Result Storage Path. Anda dapat memilih folder yang ada atau membuat folder.

Setelah konfigurasi selesai, jalankan pernyataan SQL. Di tab Running History, Anda dapat mengklik Download di kolom Tindakan rekaman untuk mengunduh file. Anda juga dapat mengakses dan mengunduh file di konsol OSS.
(Opsional) Simpan pernyataan SQL.
Anda dapat mengklik Save untuk menyimpan pernyataan SQL yang Anda jalankan di langkah sebelumnya. Lalu, Anda dapat mengeksekusi pernyataan SQL yang disimpan di tab Saved Query jika diperlukan.
FAQ
Jika Anda memiliki pertanyaan atau ingin mengeksplorasi teknologi data lake lebih lanjut, ikuti akun resmi Lingkaran Teknologi Data Lake di WeChat.