Diskuze: Web API stahování souboru s mnoha údaji
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 11 zpráv z 11.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Když to přeneseš přes REST API nebo souborem je myslím jedno, protože
oboje jde přes síť.
Zhodnoť zda data potřebuješ najednou a jak často to chceš stahovat. Jestli
by ti pro zpracování nestačilo přenášet data po 100 000 každých 5x
minut. Tak by se ti to postupně celé načetlo.
Dále zda nemůžeš něco na serveru předpočítat aby jsi mohl přenést
méně dat.
Ještě můžeš data zkomprimovat - nepoužívat xml, použít vlastní formát
bez "značek". Případně data zazipovat.
Když by jsi napsal více podrobností o použítí dat, tak můžeme vymyslet něco více.
Můžeš uvést nějakou situaci, kde by bylo potřeba najednou 10mio záznamů? I tisíc je hodně na to, aby se tím někdo prokousával...
Problém je v tom že data posílám ve formátu JSON a následně je v aplikaci za pomocí JavaScriptSerializer deserializuji. Avšak při větším množství dat, tento deserializer hodil Exception že dat je již mnoho.
Nyní to mám vyřešené takto a funguje to docela spolehlivě. Na server pošlu žádost o vygenerování souboru, zpět se mi vrátí ticket, se kterým mohu zjišťovat, zda již generování soboru doběhlo (přeci jen vyčíst takové množství dat dost zdlouhavá operace). Jestliže již doběhlo, soubor prostě jednoduše stáhnu a předám uživateli.
Ano nakonec jsem to vymyslel tak, jak jsem odpovídal na zelvicek
Na serveru si vše předpřipravím a jakmile je soubor vygenerovaný, prostě
ho jenom stáhnu. Rychlost se pak už odvíjí jen od rychlosti sítě, což u
nás ve fimě není problém.
To je jednoduché. Tato aplikace bude sloužit k vyčítání archivu s hodnotami sklářských feederů. Z těchno feederů je zapotřebí vyčítat tyto hodnoty: teplota, setpoint, proud, napětí, příkon, odpor každých 30s
Zároveň každý feeder může mít až 10 zón. Tj: 28 800 zápisů/den; 10 512 000 zápisů/rok
Dále zde jsou různá data o odběrech elektřiny, odběrech skloviny, chybové stavy, další měření, apod... Ve finále se může jednat i o stovky až tisíce údajů, které je za potřebí ukládat a přenášet.
Naše technologové si žádájí aby bylo možné vytáhnout zpětně veškeré parametry v naprosto variabilním časovém úseku. Takže musím bohužel počítat i s variantou celého roku. Co a proč to potřebují ? Netuším, ale to není již moje starost.
Takže problém není v posílání dat, jak jsi uvedl původně, ale v deserializaci.
Problém s přetečením (čehokoliv) při deserializaci je klasika. Přitom musí být každému jasné, že do RAM nemůže narvat neomezené množství dat - zejména pokud IIS admin omezí RAM na poolu. Zde bych doporučil místo JavaScriptSerializer použít https://docs.microsoft.com/…f8jsonreader?… (nebo jiný vhodný - např.:Newtonsoft). Použití XXXReaderu se může zdát složitější, ale pokud si nad tím uděláš pár obecných zjednodušujících method, není to tak strašné. A hlavně budeš pánem nad procesem deserializace (read+materialize).
A třešnička na dortu může být implementace IEnumerator<> či IAsyncEnumerator<> nad readerem.
Trošku nechápu smysl toho, aby měli ta data všechna, protože ručně se
v tom stejně nikdo hrabat nebude. Chápal bych třeba nejnižší hodnoty,
nejvyšší, různé průměry za období, ale toto?
Ale pokud ti to takto funguje, tak OK
Ano, bohužel oni si tyto data poté vloží do Excelu a následně si s nimi
dělají co potřebují. Jak jsem psal, doopravdy netuším co s tím následně
dělají. 
Tak to je upřímně lituji, pracovat v excelu s takovým množstvím dat...
Zobrazeno 11 zpráv z 11.