Bu sayfa src/cluster_erp/modules/analytics/ içindeki analytics modülünün dört dosyasını anlatır: reports.py (yakalanan sonuçlardan kurulan belgeler), summaries.py (önceden toplanmış özet hücreleri), profiling.py (veri profilleri ve ortak sütun izin listesi) ve cross.py (iki olgu kümesinin bir dönem ekseninde hizalanması).
Kapsam ve kaynak¶
- Tanımlandığı yer:
ReportService(src/cluster_erp/modules/analytics/reports.py:73),load_states,refreshveplanözet işlevleri (src/cluster_erp/modules/analytics/summaries.py:345-500),profile_targetsveProfiler(src/cluster_erp/modules/analytics/profiling.py:118-142) ilecross.pyiçindeki saf işlevler (src/cluster_erp/modules/analytics/cross.py:28-157). - Tablolar:
analytics_reports,analytics_report_items,analytics_summary_cells,analytics_summary_state(src/cluster_erp/modules/analytics/models.py:66-148). - Uçlar:
/analysis/reports(9 uç),/analysis/summariesve/analysis/summaries/refresh,/analysis/profile/{fact_key},/analysis/cross/compare/{fact_a}ve/analysis/cross/correlate/{fact_a}(src/cluster_erp/modules/analytics/routes.py:56-78,src/cluster_erp/modules/analytics/routes.py:686-785,src/cluster_erp/modules/analytics/routes.py:1071-1237).
Raporlar¶
Rapor, yakalanmış analiz sonuçlarından oluşan adlı bir belgedir. Rapor kalemi türü, olguyu ve parametreleri, ayrıca yakalama zamanıyla birlikte sonuç anlık görüntüsünü saklar; böylece rapor veri değiştiğinde hiçbir zaman değişmez (src/cluster_erp/modules/analytics/reports.py:1-17).
| Kural | Ayrıntı | Kaynak |
|---|---|---|
| Görünürlük | sahip ve kuruluş geneli is_shared; düzenleme yalnızca sahibe aittir |
src/cluster_erp/modules/analytics/reports.py:10-12 |
| Erişim yanıtları | başkasının özel raporu bulunamadı yanıtı verir; sahibi olmayanın düzenlediği paylaşılmış rapor yasak yanıtı verir | src/cluster_erp/modules/analytics/reports.py:12-14 |
| İçerik | anlık görüntüler yalnızca anlamsal anahtarlar ve hesaplanmış sayılar içerir | src/cluster_erp/modules/analytics/reports.py:15-17 |
| Kalemler | kalem ekleme, güncelleme, taşıma ve kaldırma | src/cluster_erp/modules/analytics/reports.py:222-362 |
| Kaldırma | rapor bir nedenle devre dışı bırakılır | src/cluster_erp/modules/analytics/reports.py:198-220 |
Özet hücreleri¶
Özet hücreleri, olgu kümesi ve tarih ekseni başına, gün ve özet boyutları birleşimi başına bir satır tutar; satır sayısını ve ayrıştırılabilir her ölçünün toplamını ve boş olmayan sayısını içerir. Hücrelere uyan bir rapor onlardan yanıtlanır ve içinde bulunulan gün her zaman canlı okunur (src/cluster_erp/modules/analytics/summaries.py:1-17).
flowchart LR
F["olgu tablosu satırları"] -->|updated_at su işaretiyle yenileme| C["gün ve boyutlar başına AnalyticsSummaryCell"]
F -->|tam yeniden kurma| C
C --> P{"summaries.plan"}
T["bugünün satırları, canlı"] --> P
P -->|uyar| S["yanıt kaynağı summary"]
P -->|nedenli Ineligible| L["yanıt kaynağı live"]Düz anlatımla:
- Hücreler her metin ve mantıksal boyutla ve katkı veren modülün
rollupişaretlediği referans boyutlarla anahtarlanır (src/cluster_erp/modules/analytics/summaries.py:89-99). - Bir ölçü yalnızca toplaması ayrıştırılabildiğinde hücrelerden verilir:
count,sumve toplam bölü sayı olarakavg.count_distinct,median,minvemaxcanlı kalır (src/cluster_erp/modules/analytics/summaries.py:21-23). - Özet kümesi dışında bir boyut, ikinci bir tarih ekseni veya metin üzerinde sıralama işleci kullanan sorgu canlı çalışır; sonuç
sourcedeğerini ve nedeni belirtir (src/cluster_erp/modules/analytics/summaries.py:24-26,src/cluster_erp/modules/analytics/summaries.py:399-426,src/cluster_erp/modules/analytics/service.py:157-168). - Hücreler canlı süzgecin dışladığı satırları dışlar; devre dışı bırakma
updated_atalanını değiştirir, böylece o gün yeniden hesaplanır (src/cluster_erp/modules/analytics/summaries.py:27-28). - Yenileme her
analytics_summary_refresh_seconds(varsayılan 60) saniyedeupdated_atile artımlıdır; heranalytics_summary_rebuild_minutes(varsayılan 60) dakikada tam bir yeniden kurma çalışır. Bir olgu kümesi ilk yenilemesinden sonra hücrelerden verilir (src/cluster_erp/modules/analytics/summaries.py:29-40,src/cluster_erp/config/settings.py:528-531,src/cluster_erp/server/app.py:461-470). GET /analysis/summariesolgu ve eksen başına durumu gösterir;POST /analysis/summaries/refreshistek üzerine bir yenileme veya yeniden kurma çalıştırır (src/cluster_erp/modules/analytics/routes.py:1207-1237,src/cluster_erp/modules/analytics/service.py:170-198).
Belge dizesi, hücrelerin türetilmiş veri olduğunu, bu yüzden bir hücreyi silip yeniden yazmanın bir kaydın silinmesi olmadığını belirtir (src/cluster_erp/modules/analytics/summaries.py:18-20).
Profilleme¶
Profil varsayılan olarak tablo düzeyi ve sütun düzeyi ölçütleri kapsar; bağımlılık keşfi yalnızca istek üzerine ve bir örneklem üzerinde çalışır (src/cluster_erp/modules/analytics/profiling.py:1-14).
profile_targets, bir olgunun bildirilmiş boyutlarını ve ölçü sütunlarını profillenebilir sütunlar listesine çevirir. İstatistik, çıkarım, seriler ve tariflerin kullandığı ortak izin listesidir (src/cluster_erp/modules/analytics/profiling.py:118-140).- Devre dışı satırlar
live_scopeile dışarıda bırakılır (src/cluster_erp/modules/analytics/profiling.py:55-68). - Nicelikler
percentile_disckullanır; üretilen SQL içinderound()ve float dönüşümü yoktur (src/cluster_erp/modules/analytics/profiling.py:24-27). analytics_profile_exact_max_rows(varsayılan 200000) değerinden büyük bir ilişkianalytics_profile_sample_rows(varsayılan 50000) satırlık bir örneklem üzerinde profillenir ve profil bunu belirtir (src/cluster_erp/modules/analytics/profiling.py:29-33,src/cluster_erp/modules/analytics/profiling.py:166,src/cluster_erp/config/settings.py:485-486).- Satırları birden çok para birimine yayılan parasal bir sütunda sayısal ve sıralı ölçütler hesaplanmaz (
src/cluster_erp/modules/analytics/profiling.py:216-250).
Olgular arası karşılaştırma¶
cross.py, iki olgu kümesini aynı seri motorunun kurduğu ortak bir dönem ekseninde hizalar (src/cluster_erp/modules/analytics/cross.py:1-15):
- Birleştirme, iki tarafta da tanımlı dönemler üzerinde iç birleştirmedir; her tarafın kendine özgü dönemleri atılmaz, sayılır (
src/cluster_erp/modules/analytics/cross.py:41-80). - İsteğe bağlı bir gecikme B tarafını tam dönemlerle kaydırır.
- Kategorik bir taraf sayılardan varlık veya pay olarak türetilir ve türetme bildirilir (
src/cluster_erp/modules/analytics/cross.py:82-115).
İki olgu kümesi de çağıranın izinle süzülmüş kataloğu üzerinden çözülür; okunamayan bir taraf tüm soruyu bilinmeyen yapar (src/cluster_erp/modules/analytics/service.py:535-563).
Kısıtlar ve doğrulama¶
- Rapor kalemleri ve kayıtlı modeller hiçbir zaman fiziksel ad saklamaz (
src/cluster_erp/modules/analytics/reports.py:15-17). - Özet yenilemesi sunucuda bir arka plan döngüsüdür; yenilemesi kapalı bir kurulum her şeyi canlı yanıtlar (
src/cluster_erp/modules/analytics/summaries.py:38-39).
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| summary cell | AnalyticsSummaryCell |
Olgu, tarih ekseni, gün ve boyut birleşimi başına önceden toplanmış tek satır. | Özet hücresi | src/cluster_erp/modules/analytics/models.py:112 |
| report item | AnalyticsReportItem |
Bir rapor içinde sonuç anlık görüntüsüyle yakalanmış analiz. | Rapor kalemi | src/cluster_erp/modules/analytics/models.py:86 |
| profile target | profile_targets |
Profillemenin ve istatistiğin okuyabileceği bildirilmiş sütun. | Profil hedefi | src/cluster_erp/modules/analytics/profiling.py:118 |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.