Lapisan Silver
Segera hadir!
Arsitektur lapisan Silver yang dijelaskan dalam dokumen ini saat ini sedang dalam pengembangan. Meskipun kemampuan transformasi inti sudah berfungsi, sistem konfigurasi dan detail implementasinya mungkin berkembang sebelum rilis final. Jika Anda tertarik untuk mendapatkan akses awal atau memiliki pertanyaan tentang fungsionalitas ini, harap hubungi [email protected].
Lapisan Silver mengubah data telematik mentah dan informasi bisnis menjadi entitas yang ternormalisasi dan siap-kueri dengan metrik dan struktur yang telah ditetapkan. Lapisan Bronze berisi semua yang ditangkap dari perangkat dan sistem—titik individu, peristiwa, dan nilai field yang berguna untuk verifikasi dan pemecahan masalah. Lapisan Silver memproses data mentah ini menjadi entitas bermakna seperti perjalanan, kunjungan zona, dan status operasional melalui transformasi yang dapat dikonfigurasi yang membersihkan, menstandarkan, dan mengagregasi data menjadi objek analitis yang mudah dipahami.
💡 Lapisan Silver secara singkat: Bronze adalah semua yang dikumpulkan, Silver adalah apa yang dapat Anda gunakan.
Lapisan perantara ini menghilangkan pekerjaan ETL manual yang berulang dan mempersiapkan data untuk analitik praktis. Operator armada mendapatkan jawaban atas pertanyaan umum tanpa pemrosesan data yang luas, sementara integrator memperoleh fondasi yang stabil untuk membangun fungsionalitas yang dapat diskalakan.
Arsitektur dan kapabilitas
Lapisan Silver mengatur data terproses ke dalam dua skema berbeda yang mencerminkan sumber transformasi dan pola akses yang berbeda. Kedua skema beroperasi pada tingkat lapisan Silver dari arsitektur medallion, ditempatkan di atas skema lapisan Bronze (raw_business_data dan raw_telematics_data) dan di bawah lapisan Gold.
Struktur skema
Lapisan Silver menggunakan pendekatan skema dinamis di mana struktur basis data terbentuk secara otomatis berdasarkan transformasi aktif. Berbeda dengan lapisan Bronze dengan definisi skemanya yang tetap, skema lapisan Silver hanya berisi tabel yang sesuai dengan transformasi yang dikonfigurasi dan dideploy. Ini berarti tabel yang tersedia dan strukturnya bergantung pada transformasi mana yang saat ini aktif di IoT Query instansi.
Data lapisan Silver diorganisasikan ke dalam dua skema PostgreSQL:
processed_common_data: Berisi transformasi yang dikembangkan dan dipelihara oleh Navixy. Skema ini dibagikan di antara semua klien, menyediakan entitas analitis standar yang menangani kasus penggunaan telematik umum. Tabel muncul dalam skema ini saat Navixy mengembangkan dan mendeploy transformasi baru untuk memenuhi kebutuhan analitis yang luas.
processed_custom_data: Berisi transformasi spesifik-klien yang dibuat untuk memenuhi kebutuhan bisnis unik. Setiap klien memiliki instance terisolasi dari skema ini, memungkinkan entitas analitis kustom tanpa memengaruhi klien lain. Tabel dalam skema ini sesuai dengan transformasi yang dikonfigurasi khusus untuk organisasi Anda.
Kedua skema beroperasi melalui konfigurasi transformasi berbasis JSON. Saat sebuah transformasi dikonfigurasi dan diaktifkan, sistem secara otomatis membuat struktur tabel yang sesuai dalam skema yang tepat. Ketika transformasi dihapus atau dinonaktifkan, tabelnya dapat diarsipkan atau dihapus berdasarkan kebijakan retensi data.
Pembentukan dinamis ini menyebabkan dokumentasi lapisan Silver tidak menyediakan deskripsi skema tetap seperti yang dilakukan lapisan Bronze. Sebagai gantinya, tabel yang tersedia dan strukturnya mencerminkan transformasi spesifik yang dikonfigurasi untuk instance IoT Query Anda. Untuk memahami data apa yang tersedia di lapisan Silver Anda, tinjau dokumentasi transformasi untuk entitas yang telah dideploy ke instance Anda.
Arsitektur pemrosesan
Transformasi lapisan Silver beroperasi melalui arsitektur yang digerakkan oleh konfigurasi yang memisahkan logika bisnis dari orkestrasi. Setiap transformasi didefinisikan oleh konfigurasi JSON yang menetapkan logika pemrosesan SQL, parameter, penjadwalan, dan perilaku perhitungan ulang. Apache Airflow mengelola siklus hidup eksekusi, menerapkan konfigurasi ini untuk memproses data lapisan Bronze menjadi entitas lapisan Silver.
Struktur konfigurasi JSON tetap identik untuk transformasi umum dan kustom, memastikan pola pemrosesan yang konsisten di seluruh entitas lapisan Silver. Pendekatan konfigurasi terpadu ini memungkinkan deployment transformasi yang fleksibel sambil mempertahankan eksekusi dan kontrol versi yang terstandarisasi.

Untuk informasi rinci tentang sistem konfigurasi JSON, lihat Configuration JSON bagian.
Kelengkapan data
Entitas lapisan Silver dipelihara secara otomatis melalui proses terjadwal yang ditentukan dalam konfigurasi transformasi. Saat Anda melakukan kueri pada data lapisan Silver, perhatikan karakteristik pemrosesan ini:
Pembaruan terjadwal: Setiap transformasi memproses data lapisan Bronze baru sesuai jadwal yang dikonfigurasikan. Pembaruan biasanya terjadi setiap jam atau setiap beberapa jam tergantung pada kompleksitas transformasi.
Jendela pemrosesan: Transformasi beroperasi pada jendela berbasis waktu untuk memproses segmen data yang dapat dikelola secara efisien daripada keseluruhan dataset.
Dampak perhitungan ulang: Ketika perubahan konfigurasi memicu perhitungan ulang, data terkini mungkin menunjukkan ketidakkonsistenan singkat selama jendela pemrosesan.
Perilaku spesifik skema: Transformasi di
processed_common_datamemperbarui secara bersamaan untuk semua klien yang berbagi skema tersebut. Transformasi diprocessed_custom_databerjalan secara mandiri per klien, memungkinkan penjadwalan dan logika pemrosesan yang disesuaikan.
Configuration JSON
Bagian ini menjelaskan arsitektur konfigurasi yang saat ini sedang dikembangkan. Struktur JSON dan spesifikasi parameter yang ditunjukkan di sini merepresentasikan pendekatan implementasi yang direncanakan. Detail implementasi akhir mungkin berbeda seiring kemajuan pengembangan.
Lapisan Silver beroperasi pada arsitektur yang digerakkan oleh konfigurasi di mana transformasi didefinisikan oleh spesifikasi JSON. Setiap konfigurasi berisi logika pemrosesan, parameter transformasi, aturan penjadwalan, dan kebijakan perhitungan ulang yang menentukan bagaimana data lapisan Bronze menjadi entitas lapisan Silver.
Struktur JSON
Sebuah konfigurasi transformasi terdiri dari empat bagian:
version (string): Versi konfigurasi mengikuti semantic versioning
metadata (object): Informasi dasar termasuk nama, deskripsi, timestamp pembuatan, dan identifier pembuat
sql_template (object): Spesifikasi logika pemrosesan termasuk jalur file SQL, definisi tabel target, dan parameter transformasi
target (object): Lokasi keluaran yang menentukan skema dan tabel
scheduler (object): Kontrol eksekusi termasuk jadwal cron, status aktif, dan konfigurasi backfill
Skema konfigurasi
Parameterisasi skrip SQL
Skrip SQL transformasi merujuk parameter konfigurasi menggunakan placeholder yang diawali titik dua. Sistem menggantikan nilai aktual dari konfigurasi saat mengeksekusi skrip dan menyediakan parameter jendela waktu standar secara otomatis:
:window_start - Awal jendela waktu pemrosesan (timestamp ISO-8601)
:window_end - Akhir jendela waktu pemrosesan (timestamp ISO-8601)
Parameter kustom didefinisikan dalam sql_template.parameters bagian dan mengendalikan logika spesifik transformasi seperti ambang kualitas, aturan bisnis, dan metode perhitungan.
Contoh SQL dengan parameter:
Versi konfigurasi
Ketika ada perubahan parameter konfigurasi apa pun, versi baru dibuat. Setiap versi merepresentasikan satu set aturan pemrosesan spesifik yang aktif selama periode waktu tertentu, memungkinkan pelacakan bagaimana logika transformasi berkembang.
Pemicu pembuatan versi:
Setiap parameter dalam
sql_template.parametersberubahJalur file skrip SQL diubah
Skema atau tabel target berubah
Pengaturan scheduler atau backfill disesuaikan
Penerapan versi: Ketika versi konfigurasi baru dibuat dan diterapkan, sistem memproses data berdasarkan mode perhitungan ulang yang dipilih.
Mode perhitungan ulang
Sistem konfigurasi mendukung tiga mode perhitungan ulang yang mengontrol bagaimana perubahan parameter memengaruhi data historis dan masa depan. Mode ini memberikan fleksibilitas dalam menyeimbangkan kebutuhan konsistensi data dengan efisiensi pemrosesan.
Perhitungan ulang maju-saja
Mode maju-saja menerapkan parameter konfigurasi baru hanya pada data yang diproses setelah perubahan versi. Data historis tetap tidak berubah, mempertahankan nilai yang dihitung dengan parameter sebelumnya.
Kapan digunakan: Penyesuaian parameter minor yang tidak mengubah definisi entitas secara fundamental, menguji parameter baru sebelum perhitungan ulang penuh, atau mengelola biaya komputasi dengan menghindari pemrosesan ulang historis.
Perilaku: Jika Anda mengubah min_speed_kmh dari 3 menjadi 5 pada 8 Desember, hanya perjalanan yang diproses sejak 8 Desember yang menggunakan ambang baru. Perjalanan yang dihitung sebelum 8 Desember mempertahankan nilai aslinya.
Perhitungan ulang seluruh riwayat
Mode perhitungan ulang penuh memproses semua data historis dalam rentang tanggal backfill yang dikonfigurasikan menggunakan parameter baru. Sistem menggantikan semua entitas yang ada dengan nilai yang dihitung ulang.
Kapan digunakan: Perubahan mendasar pada definisi entitas atau algoritma deteksi, memperbaiki kesalahan sistematis dalam perhitungan sebelumnya, atau menstandarkan semua data historis sesuai aturan bisnis saat ini.
Perilaku: Mengubah logika deteksi perjalanan memerlukan perhitungan ulang semua perjalanan untuk memastikan definisi entitas yang konsisten di seluruh rentang waktu.
Perhitungan ulang parsial
Mode perhitungan ulang parsial memproses jendela waktu terbatas dari data historis, biasanya beberapa hari atau minggu terakhir.
Kapan digunakan: Memperbaiki masalah kualitas data baru-baru ini, memperbarui parameter yang terutama memengaruhi pola operasional terkini, atau menerapkan perubahan dengan dampak historis terbatas.
Konfigurasi: Tentukan sebuah backfill_days parameter (mis. 7 untuk minggu terakhir) baik dalam konfigurasi atau saat memicu perhitungan ulang secara manual. Sistem memperbarui catatan yang ada dalam jendela waktu yang ditentukan.
Transformasi yang tersedia
Lapisan Silver saat ini menyediakan dua kelompok transformasi yang menunjukkan pendekatan berbasis konfigurasi dan berfungsi sebagai template untuk mengembangkan entitas kustom.
Perjalanan
Ini adalah transformasi pelacakan pergerakan yang mengidentifikasi segmen pergerakan kontinu dari data pelacakan mentah dan menghitung metrik perjalanan yang komprehensif.
Referensi cepat:
Tujuan: Mengonversi data lokasi tingkat-titik menjadi analitik tingkat-perjalanan
Tabel utama:
business_data.tracksMetrik utama: Jarak, durasi, statistik kecepatan, batas geografis
Data sumber:
raw_telematics_data.tracking_data_core,raw_telematics_data.states
Tabel: business_data.tracks
Tabel tracks menyimpan informasi teragregasi tentang segmen pergerakan kontinu dengan metrik yang telah dihitung sebelumnya dan konteks geografis.
Kunci utama: track_id (identifikasi unik auto-increment)
Deskripsi field:
Jarak Haversine track_id field mengidentifikasi secara unik setiap segmen perjalanan. Field device_id mengacu pada perangkat pelacakan dari lapisan Bronze. Field track_start_time dan track_end_time mendefinisikan batas temporal perjalanan. Field track_duration menyediakan format durasi yang dapat dibaca manusia sementara track_duration_seconds memungkinkan perhitungan numerik. Field track_distance_meters berisi total jarak yang ditempuh. Field kecepatan (avg_speed, max_speed, min_speed) memberikan ringkasan statistik dalam kilometer per jam. Koordinat awal (latitude_start, longitude_start, altitude_start) dan koordinat akhir (latitude_end, longitude_end, altitude_end) mendefinisikan batas geografis. Field points_in_track menunjukkan kualitas data melalui jumlah titik. Field start_zone dan end_zone menghubungkan ke data referensi zona ketika perjalanan dimulai atau berakhir di dalam zona yang ditentukan.
Hubungan data:
Algoritma deteksi perjalanan
Transformasi mengidentifikasi perjalanan menggunakan deteksi pergerakan yang menganalisis kecepatan, jarak, dan pola temporal. Sebuah perjalanan merepresentasikan segmen pergerakan kontinu yang dipisahkan dari perjalanan lain oleh periode parkir atau celah data.
Sistem memulai perjalanan baru ketika titik pelacakan pertama muncul untuk sebuah perangkat, ketika pergerakan dimulai setelah durasi parkir yang melebihi ambang yang dikonfigurasikan, ketika pergerakan dilanjutkan setelah celah data yang melebihi timeout yang dikonfigurasikan, atau ketika sebuah titik lokasi LBS (menara seluler) tunggal tercatat. Sistem mengakhiri perjalanan ketika pergerakan berhenti dan durasi parkir mencapai ambang yang dikonfigurasikan, atau ketika terjadi celah data yang melebihi timeout.
Klasifikasi pergerakan:
Berjalan/bergerak: Kecepatan ≥ ambang yang dikonfigurasikan
Parkir: Kecepatan < ambang DAN durasi ≥ durasi parkir yang dikonfigurasikan
Celah data: Waktu antara titik ≥ timeout pemisahan yang dikonfigurasikan
Validasi kualitas: Perjalanan yang dihasilkan harus memenuhi ambang kualitas yang dapat dikonfigurasi untuk disertakan—minimal 2 titik pelacakan, kecepatan maksimum ≥ ambang yang dikonfigurasikan, total jarak ≥ ambang yang dikonfigurasikan, dan waktu mulai serta berakhir yang terdefinisi. Sistem memfilter data anomali termasuk kecepatan yang tidak realistis untuk titik LBS, koordinat nol, dan cakupan satelit yang tidak memadai.
Perhitungan metrik: Metrik perjalanan dihitung dari titik pelacakan yang tervalidasi. Jarak merepresentasikan panjang geometris total. Statistik kecepatan meliputi nilai rata-rata, maksimum, dan minimum dari kecepatan titik. Durasi adalah selisih waktu antara waktu akhir dan awal. Batas geografis menangkap koordinat titik pertama dan terakhir. Asosiasi zona mencocokkan zona awal dan akhir dari data referensi ketika perjalanan dimulai atau berakhir di dalam zona yang ditentukan.
Parameter konfigurasi
min_parking_seconds
Ambang durasi untuk deteksi parkir
detik
tracks_split_timeout_seconds
Celah maksimal antar titik sebelum memisahkan perjalanan
detik
min_distance_meters
Jarak minimum perjalanan untuk validasi kualitas
meter
min_speed_kmh
Ambang kecepatan minimum untuk deteksi pergerakan
km/h
max_lbs_speed_kmh
Kecepatan realistis maksimum untuk titik LBS
km/h
min_satellites
Jumlah satelit minimum untuk kualitas GPS
count
Contoh konfigurasi
Contoh skrip SQL
SQL sederhana berikut menunjukkan penggunaan parameter dalam logika transformasi:
Contoh kueri
Dapatkan semua perjalanan untuk perangkat tertentu:
Hitung ringkasan jarak harian:
Temukan perjalanan antara zona tertentu:
Geofences
Transformasi Geofences menghitung terlebih dahulu batas geografis sebagai geometri PostGIS dan melacak ketika perangkat memasuki, tetap di dalam, dan keluar dari area yang ditentukan ini. Pemrosesan ini menghilangkan kebutuhan perhitungan spasial real-time selama kueri, secara signifikan meningkatkan performa untuk analitik berbasis lokasi.
Transformasi ini menunjukkan pemrosesan data spasial dan deteksi peristiwa dari aliran lokasi kontinu.
Referensi cepat:
Tujuan: Hitung terlebih dahulu geometri geofence dan lacak keberadaan perangkat di area geografis
Tabel utama:
business_data.geofence_geometries,business_data.geofence_visitsMetrik utama: Durasi kunjungan, waktu masuk/keluar, pemanfaatan geofence
Manfaat performa: Kueri spasial 10-100x lebih cepat dibandingkan perhitungan geometri secara langsung
Data sumber:
raw_business_data.zones,raw_business_data.geofence_points,raw_telematics_data.tracking_data_core
Tabel: business_data.geofence_geometries
business_data.geofence_geometriesTabel geofence_geometries menyimpan representasi geometris geofence yang dioptimalkan untuk kueri spasial yang efisien.
Kunci utama: geofence_id
Deskripsi field:
Jarak Haversine geofence_id field mengidentifikasi secara unik setiap geofence dan merujuk ke raw_business_data.zones.zone_id. Field geofence_type menunjukkan bentuk geofence (lingkaran, poligon, atau rute). Field geofence_label berisi nama geofence untuk tampilan dan referensi. Field address menyimpan deskripsi lokasi geofence. Field color menyimpan kode warna HEX untuk visualisasi. Field geofence_geom berisi representasi geografis untuk operasi spasial. Field created_at dan updated_at melacak perubahan temporal.
Spesifikasi tipe geofence:
Lingkaran: Didefinisikan oleh titik pusat dan radius
Poligon: Titik terurut yang membentuk bentuk tertutup
Rute: Jalur garis dengan radius buffer
Perilaku sinkronisasi: Tabel secara otomatis disinkronkan ketika data sumber geofence berubah di lapisan Bronze.
Tabel: business_data.geofence_visits
business_data.geofence_visitsTabel geofence_visits mencatat riwayat keberadaan perangkat dalam geofence termasuk waktu masuk, waktu keluar, dan durasi kunjungan.
Kunci utama: Kunci komposit pada (device_id, geofence_id, enter_time)
Deskripsi field:
Jarak Haversine device_id field merujuk pada perangkat pelacakan. Field geofence_id mengacu pada geofence dari geofence_geometries. Field enter_time menandai ketika perangkat memasuki geofence. Field exit_time menandai ketika perangkat keluar (NULL untuk kunjungan yang sedang berlangsung). Field duration berisi panjang kunjungan yang dihitung.
Hubungan data:
Algoritma deteksi kunjungan
Transformasi melacak keberadaan perangkat dalam geofence dengan membandingkan titik pelacakan terhadap geometri geofence. Catatan kunjungan merekam ketika perangkat memasuki, tetap di dalam, dan keluar dari geofence yang ditentukan.
Deteksi masuk: Sistem mendeteksi masuk ketika titik pelacakan perangkat berada di dalam geometri geofence dan titik sebelumnya berada di luar geofence ini atau tidak ada titik sebelumnya.
Deteksi keluar: Sistem mendeteksi keluar ketika titik pelacakan perangkat berada di luar geometri geofence dan titik sebelumnya berada di dalam geofence.
Pengelompokan kunjungan: Pasangan masuk-keluar berurutan membentuk satu catatan kunjungan. Kunjungan terbuka (tidak terdeteksi keluar) menunjukkan NULL pada exit_time dan diperbarui ketika keluar terjadi dalam siklus pemrosesan berikutnya.
Perhitungan durasi: Durasi kunjungan dihitung sebagai selisih waktu antara peristiwa masuk dan keluar. Kunjungan terbuka menunjukkan durasi NULL sampai keluar terdeteksi.
Parameter konfigurasi
spatial_buffer_meters
Jarak buffer untuk deteksi batas geofence
meter
min_visit_duration_seconds
Durasi kunjungan minimum untuk dicatat
detik
max_visit_gap_seconds
Celah waktu maksimum sebelum dianggap kunjungan berakhir
detik
Contoh konfigurasi
Contoh kueri
Dapatkan semua kunjungan ke geofence tertentu:
Hitung statistik pemanfaatan geofence:
Temukan perangkat yang sedang hadir:
Analisis pola masuk/keluar geofence berdasarkan jam:
Identifikasi perangkat dengan waktu tinggal terpanjang:
Pengembangan entitas kustom
Lapisan Silver menunjukkan pola transformasi melalui transformasi yang tersedia, yang berfungsi sebagai template untuk mengembangkan entitas analitis kustom. Dengan menggunakan data lapisan Bronze, kapabilitas SQL, dan arsitektur konfigurasi, entitas kustom dapat dikembangkan untuk memenuhi kebutuhan bisnis tertentu.
Pendekatan pengembangan
Entitas Silver kustom mengikuti arsitektur yang digerakkan oleh konfigurasi yang dijelaskan dalam dokumen ini. Pendekatannya melibatkan mendefinisikan logika transformasi dalam skrip SQL dan membuat konfigurasi JSON yang menentukan parameter dan jadwal untuk eksekusi otomatis.
Kapabilitas utama: Mengagregasi beberapa titik data mentah menjadi objek analitis tunggal, menerapkan logika bisnis dan aturan validasi, menghitung metrik terlebih dahulu untuk mempercepat kueri, menjaga akurasi temporal melalui pemrosesan terjadwal, dan mengintegrasikan operasi spasial dengan konteks bisnis.
Jenis entitas kustom potensial
Entitas operasional: Status operasional dan mode kerja spesifik perusahaan, pola shift dan pelacakan siklus tugas, metrik pemanfaatan aset, deteksi jendela pemeliharaan
Entitas perilaku: Penilaian risiko kustom berdasarkan beberapa faktor, analisis dan klasifikasi pola berkendara, pemantauan kepatuhan dengan ambang batas yang dapat dikonfigurasi, agregasi indikator keselamatan
Entitas kinerja: Metrik dan KPI spesifik industri, perhitungan efisiensi menggunakan rumus kustom, indikator optimasi sumber daya, pelacakan pencapaian tingkat layanan
Entitas berbasis peristiwa: Deteksi peristiwa kustom dengan kondisi kompleks, agregasi dan pengenalan pola peringatan, identifikasi anomali menggunakan metode statistik, pelacakan pelanggaran ambang batas
Template konfigurasi
Panduan skrip SQL
Gunakan nilai yang diparameterkan:
Manfaatkan jendela waktu standar:
Strukturkan pemrosesan dalam tahap:
Sumber daya tambahan
Untuk pola kueri terperinci dan bekerja dengan data lapisan Silver, rujuk ke IoT Query SQL Recipe Book.
Jika Anda tertarik untuk akses awal atau memiliki pertanyaan tentang fungsionalitas ini, silakan hubungi [email protected].
Last updated
Was this helpful?