ื“ื™ ื’ืขืฉื™ื›ื˜ืข ืคื•ืŸ โ€‹โ€‹ืื•ื ื“ื–ืขืจ ืึธืคึฟืŸ ืžืงื•ืจ: ื•ื•ื™ ืžื™ืจ ื’ืขืžืื›ื˜ ืึทืŸ ืึทื ืึทืœื™ื˜ื™ืงืก ื“ื™ื ืกื˜ ืื™ืŸ Go ืื•ืŸ ื’ืขืžืื›ื˜ ืขืก ืขืคื ื˜ืœืขืš ื‘ื ื™ืžืฆื

ื“ืขืจื•ื•ื™ื™ึทืœ, ื›ึผืžืขื˜ ื™ืขื“ืขืจ ืคื™ืจืžืข ืื™ืŸ ื“ืขืจ ื•ื•ืขืœื˜ ืงืึทืœืขืงืฅ ืกื˜ืึทื˜ื™ืกื˜ื™ืง ื•ื•ืขื’ืŸ ื‘ืึทื ื™ืฆืขืจ ืึทืงืฉืึทื ื– ืื•ื™ืฃ ืึท ื•ื•ืขื‘ ืžื™ื˜ืœ. ื“ื™ ืžืึธื•ื˜ืึทื•ื•ื™ื™ืฉืึทืŸ ืื™ื– ืงืœืึธืจ - ืงืึธืžืคึผืึทื ื™ืขืก ื•ื•ื™ืœืŸ ืฆื• ื•ื•ื™ืกืŸ ื•ื•ื™ ื–ื™ื™ืขืจ ืคึผืจืึธื“ื•ืงื˜ / ื•ื•ืขื‘ื–ื™ื™ื˜ืœ ืื™ื– ื’ืขื ื™ืฆื˜ ืื•ืŸ ื‘ืขืกืขืจ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื–ื™ื™ืขืจ ื™ื•ื–ืขืจื–. ืคื•ืŸ ืงื•ืจืก, ืขืก ื–ืขื ืขืŸ ืึท ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ืžื›ืฉื™ืจื™ื ืื•ื™ืฃ ื“ื™ ืžืึทืจืง ืฆื• ืกืึธืœื•ื•ืข ื“ืขื ืคึผืจืึธื‘ืœืขื - ืคึฟื•ืŸ ืึทื ืึทืœื™ื˜ื™ืงืก ืกื™ืกื˜ืขืžืขืŸ ื•ื•ืึธืก ืฆื•ืฉื˜ืขืœืŸ ื“ืึทื˜ืŸ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ื“ืึทืฉื‘ืึธืจื“ื– ืื•ืŸ ื’ืจืึทืคืก (ืœืžืฉืœ. Google ืึทื ืึทืœื™ื˜ื™ืงืก) ืฆื• ืงื•ื ื” ื“ืึทื˜ืึท ืคึผืœืึทื˜ืคืึธืจื, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื–ืึทืžืœืขืŸ ืื•ืŸ ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ื“ืึทื˜ืŸ ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืงื•ื•ืืœืŸ ืื™ืŸ ืงื™ื™ืŸ ื•ื•ืขืจื›ืึทื•ืก (ืœืžืฉืœ Segment).

ืื‘ืขืจ ืžื™ืจ ื’ืขืคื•ื ืขืŸ ืึท ืคึผืจืึธื‘ืœืขื ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ืกืึทืœื•ื•ื“ ื ืึธืš. ืื–ื•ื™ ืื™ื– ื’ืขื‘ื•ื™ืจืŸ ื’ืขื•ื•ืืจืŸ EventNative - ืขืคึฟืขื ืขืŸ-ืžืงื•ืจ ืึทื ืึทืœื™ื˜ื™ืงืก ื“ื™ื ืกื˜. ืœื™ื™ืขื ืขืŸ ื•ื•ืขื’ืŸ ื•ื•ืึธืก ืžื™ืจ ื‘ืึทืฉืœืึธืกืŸ ืฆื• ืึทื ื˜ื•ื•ื™ืงืœืขืŸ ืื•ื ื“ื–ืขืจ ืื™ื™ื’ืขื ืข ื“ื™ื ืกื˜, ื•ื•ืึธืก ืขืก ื”ืื˜ ืื•ื ื“ื– ืื•ืŸ ื•ื•ืึธืก ื“ื™ ืกื•ืฃ ืจืขื–ื•ืœื˜ืึทื˜ ืื™ื– ื’ืขื•ื•ืขืŸ (ืžื™ื˜ ืฉื˜ื™ืง ืคื•ืŸ ืงืึธื“).

ื“ื™ ื’ืขืฉื™ื›ื˜ืข ืคื•ืŸ โ€‹โ€‹ืื•ื ื“ื–ืขืจ ืึธืคึฟืŸ ืžืงื•ืจ: ื•ื•ื™ ืžื™ืจ ื’ืขืžืื›ื˜ ืึทืŸ ืึทื ืึทืœื™ื˜ื™ืงืก ื“ื™ื ืกื˜ ืื™ืŸ Go ืื•ืŸ ื’ืขืžืื›ื˜ ืขืก ืขืคื ื˜ืœืขืš ื‘ื ื™ืžืฆื

ืคืืจื•ื•ืืก ื–ืึธืœ ืžื™ืจ ืึทื ื˜ื•ื•ื™ืงืœืขืŸ ืื•ื ื“ื–ืขืจ ืื™ื™ื’ืขื ืข ื“ื™ื ืกื˜?

ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ื“ื™ ื ื™ื™ื ืฆื™ืงืขืจ ื™ืึธืจืŸ, ืžื™ืจ ื”ืึธื‘ืŸ ืื™ื‘ืขืจื’ืขืœืขื‘ื˜ ื•ื•ื™ ื‘ืขืกื˜ืขืจ ืžื™ืจ ื”ืึธื‘ืŸ ื’ืขืงืขื ื˜. 2019, ืžื™ืจ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ื“ื™ ืึทืคึผื™ ืขืจืฉื˜ืขืจ ืงื•ื ื” ื“ืึทื˜ืึท ืคึผืœืึทื˜ืคืึธืจื kSense, ื•ื•ืึธืก ื’ืขืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ื“ืึทื˜ืŸ ืคื•ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืงื•ื•ืืœืŸ (ืคืึทืกืขื‘ืึธืึธืง ืึทื“ืก, ืกื˜ืจื™ื™ืคึผ, ืกืึทืœืขืกืคืึธืจืกืข, Google ืคึผืœื™ื™ึท, Google ืึทื ืึทืœื™ื˜ื™ืงืก, ืืื–"ื• ื•) ืคึฟืึทืจ ืžืขืจ ื‘ืึทืงื•ื•ืขื ื“ืึทื˜ืŸ ืึทื ืึทืœื™ืกื™ืก, ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื–, ืืื–"ื• ื•. ืžื™ืจ ื”ืึธื‘ืŸ ื‘ืืžืขืจืงื˜ ืึทื– ืคื™ืœืข ื™ื•ื–ืขืจื– ื ื•ืฆืŸ ืื•ื ื“ื–ืขืจ ืคึผืœืึทื˜ืคืึธืจืžืข ืคึฟืึทืจ ื“ืึทื˜ืŸ ืึทื ืึทืœื™ืกื™ืก ืกืคึผืึทืกื™ืคื™ืงืœื™ Google Analytics (ื“ืขืจื ืึธืš GA). ืžื™ืจ ื”ืึธื‘ืŸ ื’ืขืจืขื“ื˜ ืžื™ื˜ ืขื˜ืœืขื›ืข ื™ื•ื–ืขืจื– ืื•ืŸ ื’ืขืคึฟื•ื ืขืŸ ืึทื– ื–ื™ื™ ื“ืึทืจืคึฟืŸ ื“ื™ ืึทื ืึทืœื™ื˜ื™ืงืก ื“ืึทื˜ืŸ ืคึฟืึทืจ ื–ื™ื™ืขืจ ืคึผืจืึธื“ื•ืงื˜ ื•ื•ืึธืก ื–ื™ื™ ื‘ืึทืงื•ืžืขืŸ ืžื™ื˜ GA, ืึธื‘ืขืจ Google ืกืึทืžืคึผืึทืœื– ื“ืึทื˜ืŸ ืื•ืŸ ืคึฟืึทืจ ืคื™ืœืข, ื“ื™ GA User ืฆื•ื‘ื™ื ื“ ืื™ื– ื ื™ืฉื˜ ื“ืขืจ ื ืึธืจืžืึทืœ ืคื•ืŸ ืงืึทื ื•ื•ื™ื ื™ืึทื ืก. ืžื™ืจ ื”ืึธื‘ืŸ ื’ืขื ื•ื’ ืฉืžื•ืขืกืŸ ืžื™ื˜ ืื•ื ื“ื–ืขืจ ื™ื•ื–ืขืจื– ืื•ืŸ ืื™ื™ื ื’ืขื–ืขืŸ ืึทื– ืคื™ืœืข ื–ืขื ืขืŸ ืื•ื™ืš ื ื™ืฆืŸ ื“ื™ ืกืขื’ืžืขื ื˜ ืคึผืœืึทื˜ืคืึธืจืžืข (ื•ื•ืึธืก, ื“ื•ืจืš ื“ืขื ื•ื•ืขื’, ืื™ื– ื’ืขื•ื•ืขืŸ ื ืึธืจ ื“ื™ ืื ื“ืขืจืข ื˜ืึธื’ ืคืืจืงื•ื™ืคื˜ ืคึฟืึทืจ $ 3.2 ื‘ื™ืœื™ืึธืŸ).

ื–ื™ื™ ื”ืึธื‘ืŸ ืื™ื ืกื˜ืึทืœื™ืจืŸ ืึท ืกืขื’ืžืขื ื˜ ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜ ืคึผื™ืงืกืขืœ ืื•ื™ืฃ ื–ื™ื™ืขืจ ื•ื•ืขื‘ ืžื™ื˜ืœ ืื•ืŸ ื“ืึทื˜ืŸ ื•ื•ืขื’ืŸ ื“ื™ ื ืึทื˜ื•ืจ ืคื•ืŸ ื–ื™ื™ืขืจ ื™ื•ื–ืขืจื– ื–ืขื ืขืŸ ืœืึธื•ื“ื™ื“ ืื™ืŸ ื“ื™ ืกืคึผืขืกื™ืคื™ืขื“ ื“ืึทื˜ืึทื‘ื™ื™ืก (ืœืžืฉืœ Postgres). ืึธื‘ืขืจ ืกืขื’ืžืขื ื˜ ืื•ื™ืš ื”ืื˜ ื–ื™ื™ืŸ ื“ืึทื•ื ืกื™ื™ื“ - ื“ื™ ืคึผืจื™ื™ึทื–. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื•ื™ื‘ ืึท ื•ื•ืขื‘ ืžื™ื˜ืœ ื”ืื˜ 90,000 MTU (ื›ื•ื™ื“ืขืฉืœืขืš ื˜ืจืึทืงื˜ ื™ื•ื–ืขืจื–), ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฆืึธืœืŸ ~ 1,000 $ ืคึผืขืจ ื—ื•ื“ืฉ ืฆื• ื“ื™ ืงืึทืกื™ืจืขืจ. ืขืก ืื™ื– ืื•ื™ืš ื’ืขื•ื•ืขืŸ ืึท ื“ืจื™ื˜ ืคึผืจืึธื‘ืœืขื - ืขื˜ืœืขื›ืข ื‘ืœืขื˜ืขืจืขืจ ื™ืงืกื˜ืขื ืฉืึทื ื– (ืึทื–ืึท ื•ื•ื™ AdBlock) ืืคื’ืขืฉื˜ืขืœื˜ ื“ื™ ื–ืึทืžืœื•ื ื’ ืคื•ืŸ ืึทื ืึทืœื™ื˜ื™ืงืก ื•ื•ื™ื™ึทืœ ... ื”ื˜ื˜ืคึผ ืจื™ืงื•ื•ืขืก ืคื•ืŸ ื“ืขื ื‘ืœืขื˜ืขืจืขืจ ื–ืขื ืขืŸ ื’ืขืฉื™ืงื˜ ืฆื• ื“ื™ GA ืื•ืŸ Segment ื“ืึธื•ืžื™ื™ื ื–. ื‘ืึทื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ื•ื•ื™ืœ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืงืœื™ื™ืึทื ืฅ, ืžื™ืจ ื”ืึธื‘ืŸ ื‘ืืฉืืคืŸ ืึทืŸ ืึทื ืึทืœื™ื˜ื™ืงืก ื“ื™ื ืกื˜ ื•ื•ืึธืก ืงืึทืœืขืงืฅ ืึท ื’ืึทื ืฅ ื’ืึทื ื’ ืคื•ืŸ ื“ืึทื˜ืŸ (ืึธืŸ ืžื•ืกื˜ืขืจื•ื ื’), ืื™ื– ืคืจื™ื™ ืื•ืŸ ืงืขื ืขืŸ ืึทืจื‘ืขื˜ืŸ ืื•ื™ืฃ ืื•ื ื“ื–ืขืจ ืื™ื™ื’ืขื ืข ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ.

ื•ื•ื™ ื“ื™ ืกืขืจื•ื•ื™ืก ืึทืจื‘ืขื˜

ื“ื™ ื“ื™ื ืกื˜ ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ื“ืจื™ื™ ืคึผืึทืจืฅ: ืึท ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜ ืคึผื™ืงืกืขืœ (ื•ื•ืึธืก ืžื™ืจ ืฉืคึผืขื˜ืขืจ ืจื™ืจืึธื•ื˜ ืื™ืŸ ื˜ื™ืคึผืกืงืจื™ืคึผื˜), ื“ื™ ืกืขืจื•ื•ืขืจ ื˜ื™ื™ืœ ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ ื“ื™ GO ืฉืคึผืจืึทืš, ืื•ืŸ ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืคึผืœืึทื ื ืขื“ ืฆื• ื ื•ืฆืŸ Redshift ืื•ืŸ BigQuery ื•ื•ื™ ืึทืŸ ืื™ืŸ-ื”ื•ื™ื– ื“ืึทื˜ืึทื‘ื™ื™ืก (ืฉืคึผืขื˜ืขืจ ื–ื™ื™ ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ Postgres, ClickHouse ืื•ืŸ Snowflake).

ืขืก ืื™ื– ื‘ืึทืฉืœืึธืกืŸ ืฆื• ืœืึธื–ืŸ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ื“ื™ GA ืื•ืŸ ืกืขื’ืžืขื ื˜ ื’ืขืฉืขืขื ื™ืฉืŸ ืึทื ื˜ืฉื™ื™ื ื“ื–ืฉื“. ืึทืœืข ื•ื•ืึธืก ืื™ื– ื“ืืจืฃ ืื™ื– ืฆื• ื“ื•ืคึผืœื™ืงืึทื˜ ืึทืœืข ื’ืขืฉืขืขื ื™ืฉืŸ ืคึฟื•ืŸ ื“ื™ ื•ื•ืขื‘ ืžื™ื˜ืœ ื•ื•ื• ื“ื™ ืคึผื™ืงืกืขืœ ืื™ื– ืื™ื ืกื˜ืึทืœื™ืจืŸ ืฆื• ืื•ื ื“ื–ืขืจ ื‘ืึทืงืขื ื“. ื•ื•ื™ ืขืก ื˜ื•ืจื ืก ืื•ื™ืก, ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ืฉื•ื•ืขืจ ืฆื• ื˜ืึธืŸ. ื“ื™ ื“ื–ืฉืึทื•ื•ืึทืกืงืจื™ืคึผื˜ ืคึผื™ืงืกืขืœ ืึธื•ื•ื•ืขืจืจื™ื™ื“ ื“ื™ ืึธืจื™ื’ื™ื ืขืœ GA ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืื•ืคึฟืŸ ืžื™ื˜ ืึท ื ื™ื™ึทืข, ื•ื•ืึธืก ื“ื•ืคึผืœื™ืงื™ื™ื˜ื™ื“ ื“ื™ ื’ืขืฉืขืขื ื™ืฉ ืื™ืŸ ืื•ื ื“ื–ืขืจ ืกื™ืกื˜ืขื.

//'ga' - ัั‚ะฐะฝะดะฐั€ั‚ะฝะพะต ะฝะฐะทะฒะฐะฝะธะต ะฟะตั€ะตะผะตะฝะฝะพะน Google Analytics
if (window.ga) {
    ga(tracker => {
        var originalSendHitTask = tracker.get('sendHitTask');
        tracker.set('sendHitTask', (model) => {
            var payLoad = model.get('hitPayload');
            //ะพั‚ะฟั€ะฐะฒะบะฐ ะพั€ะธะณะธะฝะฐะปัŒะฝะพะณะพ ัะพะฑั‹ั‚ะธั ะฒ GA
            originalSendHitTask(model);
            let jsonPayload = this.parseQuery(payLoad);
            //ะพั‚ะฟั€ะฐะฒะบะฐ ัะพะฑั‹ั‚ะธั ะฒ ะฝะฐัˆ ัะตั€ะฒะธั
            this.send3p('ga', jsonPayload);
        });
    });
}

ืžื™ื˜ ื“ื™ ืกืขื’ืžืขื ื˜ ืคึผื™ืงืกืขืœ ืึทืœืฅ ืื™ื– ืกื™ืžืคึผืœืขืจ; ืขืก ื”ืื˜ ืžื™ื˜ืœื•ื•ืึทืจืข ืžืขื˜ื”ืึธื“ืก, ืื™ื™ื ืขืจ ืคื•ืŸ ื•ื•ืึธืก ืžื™ืจ ื’ืขื•ื•ื™ื™ื ื˜.


//'analytics' - ัั‚ะฐะฝะดะฐั€ั‚ะฝะพะต ะฝะฐะทะฒะฐะฝะธะต ะฟะตั€ะตะผะตะฝะฝะพะน Segment
if (window.analytics) {
    if (window.analytics.addSourceMiddleware) {
        window.analytics.addSourceMiddleware(chain => {
            try {
		//ะดัƒะฑะปะธั€ะพะฒะฐะฝะธะต ัะพะฑั‹ั‚ะธั ะฒ ะฝะฐัˆ ัะตั€ะฒะธั
                this.send3p('ajs', chain.payload);
            } catch (e) {
                LOG.warn('Failed to send an event', e)
            }
	    //ะพั‚ะฟั€ะฐะฒะบะฐ ะพั€ะธะณะธะฝะฐะปัŒะฝะพะณะพ ัะพะฑั‹ั‚ะธั ะฒ Segment
            chain.next(chain.payload);
        });
    } else {
        LOG.warn("Invalid interceptor state. Analytics js initialized, but not completely");
    }
} else {
    LOG.warn('Analytics.js listener is not set.');
}

ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ืงืึทืคึผื™ื™ื ื’ ื’ืขืฉืขืขื ื™ืฉืŸ, ืžื™ืจ ื”ืึธื‘ืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืฉื™ืงืŸ ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ื“ื–ืฉืกืึธืŸ:


//ะžั‚ะฟั€ะฐะฒะบะฐ ัะพะฑั‹ั‚ะธะน ั ะฟั€ะพะธะทะฒะพะปัŒะฝั‹ะผ json ะพะฑัŠะตะบั‚ะพะผ
eventN.track('product_page_view', {
    product_id: '1e48fb70-ef12-4ea9-ab10-fd0b910c49ce',
    product_price: 399.99,
    price_currency: 'USD'
    product_release_start: '2020-09-25T12:38:27.763000Z'
});

ื•ื•ื™ื™ึทื˜ืขืจ, ืœืึธื–ืŸ ืก ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ ื˜ื™ื™ืœ. ื“ื™ ื‘ืึทืงืขื ื“ ื–ืึธืœ ืึธื ื ืขืžืขืŸ http ืจื™ืงื•ื•ืขืก, ืคึผืœืึธืžื‘ื™ืจืŸ ื–ื™ื™ ืžื™ื˜ ื ืึธืš ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข, ืœืžืฉืœ, ื’ืขืึธ ื“ืึทื˜ืŸ (ื“ืึทื ืง ืžืึทืงืกืžื™ื ื“ ืคึฟืึทืจ ื“ืขื) ืื•ืŸ ืจืขืงืึธืจื“ ืขืก ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก. ืžื™ืจ ื’ืขื•ื•ืืœื˜ ืฆื• ืžืึทื›ืŸ ื“ื™ ื“ื™ื ืกื˜ ื•ื•ื™ ื‘ืึทืงื•ื•ืขื ื•ื•ื™ ืžืขื’ืœืขืš ืึทื–ื•ื™ ืึทื– ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืžื™ื˜ ืžื™ื ื™ืžืึทืœ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ. ืžื™ืจ ื”ืึธื‘ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ื“ื™ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ืคื•ืŸ ื“ื™ื˜ืขืจืžืึทื ื™ื ื’ ื“ื™ ื“ืึทื˜ืŸ ืกื˜ืฉืขืžืึท ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ื“ื™ ื™ื ืงืึทืžื™ื ื’ json ื’ืขืฉืขืขื ื™ืฉ. ื“ืึทื˜ืข ื˜ื™ื™ืคึผืก ื–ืขื ืขืŸ ื“ื™ืคื™ื™ื ื“ ื“ื•ืจืš ื•ื•ืึทืœื•ืขืก. ื ืขืกื˜ืขื“ ืึทื‘ื“ื–ืฉืขืงืฅ ื–ืขื ืขืŸ ื“ื™ืงืึทืžืคึผืึธื•ื–ื“ ืื•ืŸ ืจื™ื“ื•ืกื˜ ืฆื• ืึท ืคืœืึทืš ืกื˜ืจื•ืงื˜ื•ืจ:

//ะฒั…ะพะดัั‰ะธะน json
{
  "field_1":  {
    "sub_field_1": "text1",
    "sub_field_2": 100
  },
  "field_2": "text2",
  "field_3": {
    "sub_field_1": {
      "sub_sub_field_1": "2020-09-25T12:38:27.763000Z"
    }
  }
}

//ั€ะตะทัƒะปัŒั‚ะฐั‚
{
  "field_1_sub_field_1":  "text1",
  "field_1_sub_field_2":  100,
  "field_2": "text2",
  "field_3_sub_field_1_sub_sub_field_1": "2020-09-25T12:38:27.763000Z"
}

ืึธื‘ืขืจ, ืขืจื™ื™ื– ื–ืขื ืขืŸ ื“ืขืจื•ื•ื™ื™ึทืœ ืคืฉื•ื˜ ืงืึธื ื•ื•ืขืจื˜ืขื“ ืฆื• ืกื˜ืจื™ื ื’ืก ื•ื•ื™ื™ึทืœ ื ื™ื˜ ืึทืœืข ืจื™ืœื™ื™ืฉืึทื ืึทืœ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ืฉื˜ื™ืฆืŸ ืจื™ืคึผื™ื˜ื™ื“ ืคืขืœื“ืขืจ. ืขืก ืื™ื– ืื•ื™ืš ืžืขื’ืœืขืš ืฆื• ื˜ื•ื™ืฉืŸ ืคืขืœื“ ื ืขืžืขืŸ ืึธื“ืขืจ ื•ื™ืกืžืขืงืŸ ื–ื™ื™ ื ื™ืฆืŸ ืึทืคึผืฉืึทื ืึทืœ ืžืึทืคึผื™ื ื’ ื›ึผืœืœื™ื. ื–ื™ื™ ืœืึธื–ืŸ ืื™ืจ ืฆื• ื˜ื•ื™ืฉืŸ ื“ื™ ื“ืึทื˜ืŸ ืกื›ืขืžืข ืื•ื™ื‘ ื ื™ื™ื˜ื™ืง ืึธื“ืขืจ ื’ืขืจ ืื™ื™ืŸ ื“ืึทื˜ืŸ ื˜ื™ืคึผ ืฆื• ืื ื“ืขืจืŸ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื•ื™ื‘ ืึท ื“ื–ืฉืกืึธืŸ ืคืขืœื“ ื›ึผื•ืœืœ ืึท ืฉื˜ืจื™ืงืœ ืžื™ื˜ ืฆื™ื™ื˜ ืกื˜ืึทืžืคึผ (field_3_sub_field_1_sub_sub_field_1 ืคึฟื•ืŸ ื“ืขื ื‘ื™ื™ืฉืคึผื™ืœ ืื•ื™ื‘ืŸ), ืื™ืŸ ืกื“ืจ ืฆื• ืฉืึทืคึฟืŸ ืึท ืคืขืœื“ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืžื™ื˜ ื“ื™ ื˜ื™ืžืขืกื˜ืึทืžืคึผ ื˜ื™ืคึผ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืึท ืžืึทืคึผื™ื ื’ ื”ืขืจืฉืŸ ืื™ืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ. ืื™ืŸ ืื ื“ืขืจืข ื•ื•ืขืจื˜ืขืจ, ื“ื™ ื“ืึทื˜ืŸ ื˜ื™ืคึผ ืคื•ืŸ ื“ื™ ืคืขืœื“ ืื™ื– ื‘ืืฉืœืืกืŸ ืขืจืฉื˜ืขืจ ื“ื•ืจืš ื“ื™ json ื•ื•ืขืจื˜, ืื•ืŸ ื“ืขืจื ืึธืš ื“ื™ ื˜ื™ืคึผ ืงืึทืกื˜ื™ื ื’ ื”ืขืจืฉืŸ (ืื•ื™ื‘ ืงืึทื ืคื™ื’ื™ืขืจื“) ืื™ื– ื’ืขื•ื•ืขื ื“ื˜. ืžื™ืจ ื”ืึธื‘ืŸ ื™ื™ื“ืขื ืึทืคื™ื™ื“ 4 ื”ื•ื™ืคึผื˜ ื“ืึทื˜ืŸ ื˜ื™ื™ืคึผืก: STRING, FLOAT64, INT64 ืื•ืŸ TIMESTAMP. ื“ื™ ืžืึทืคึผื™ื ื’ ืื•ืŸ ื˜ื™ืคึผ ืงืึทืกื˜ื™ื ื’ ื›ึผืœืœื™ื ืงื•ืงืŸ ื•ื•ื™ ื“ืึธืก:

rules:
  - "/field_1/subfield_1 -> " #ะฟั€ะฐะฒะธะปะพ ัƒะดะฐะปะตะฝะธั ะฟะพะปั
  - "/field_2/subfield_1 -> /field_10/subfield_1" #ะฟั€ะฐะฒะธะปะพ ะฟะตั€ะตะฝะพัะฐ ะฟะพะปั
  - "/field_3/subfield_1/subsubfield_1 -> (timestamp) /field_20" #ะฟั€ะฐะฒะธะปะพ ะฟะตั€ะตะฝะพัะฐ ะฟะพะปั ะธ ะฟั€ะธะฒะตะดะตะฝะธั ั‚ะธะฟะฐ

ืึทืœื’ืขืจื™ื“ืึทื ืคึฟืึทืจ ื“ื™ื˜ืขืจืžืึทื ื™ื ื’ ื“ื™ ื“ืึทื˜ืŸ ื˜ื™ืคึผ:

  • ื’ืขืจ ื“ื–ืฉืกืึธืŸ ืกื˜ืจื•ืงื˜ื•ืจ ืฆื• ืคืœืึทืš ืกื˜ืจื•ืงื˜ื•ืจ
  • ื“ื™ื˜ืขืจืžืึทื ื™ื ื’ ื“ื™ ื“ืึทื˜ืŸ ื˜ื™ืคึผ ืคื•ืŸ ืคืขืœื“ืขืจ ื“ื•ืจืš ื•ื•ืึทืœื•ืขืก
  • ืึทืคึผืœื™ื™ื™ื ื’ ืžืึทืคึผื™ื ื’ ืื•ืŸ ื˜ื™ืคึผ ืงืึทืกื˜ื™ื ื’ ื›ึผืœืœื™ื

ื“ืขืจื ืึธืš ืคึฟื•ืŸ ื“ื™ ื™ื ืงืึทืžื™ื ื’ ื“ื–ืฉืกืึธืŸ ืกื˜ืจื•ืงื˜ื•ืจ:

{
    "product_id":  "1e48fb70-ef12-4ea9-ab10-fd0b910c49ce",
    "product_price": 399.99,
    "price_currency": "USD",
    "product_type": "supplies",
    "product_release_start": "2020-09-25T12:38:27.763000Z",
    "images": {
      "main": "picture1",
      "sub":  "picture2"
    }
}

ื“ื™ ื“ืึทื˜ืŸ ืกื›ืขืžืข ื•ื•ืขื˜ ื–ื™ื™ืŸ ื‘ืืงื•ืžืขืŸ:

"product_id" character varying,
"product_price" numeric (38,18),
"price_currency" character varying,
"product_type" character varying,
"product_release_start" timestamp,
"images_main" character varying,
"images_sub" character varying

ืžื™ืจ ืื•ื™ืš ื’ืขื“ืึทื ืง ืึทื– ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ื–ืึธืœ ืงืขื ืขืŸ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ืคึผืึทืจื˜ื™ืฉืึทื ื™ื ื’ ืึธื“ืขืจ ื˜ื™ื™ืœืŸ ื“ืึทื˜ืŸ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืœื•ื™ื˜ ืื ื“ืขืจืข ืงืจื™ื™ื˜ื™ืจื™ืึท ืื•ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืฉื˜ืขืœืŸ ื“ื™ ื˜ื™ืฉ ื ืึธืžืขืŸ ืžื™ื˜ ืึท ืงืขืกื™ื™ื“ืขืจื“ื™ืง ืึธื“ืขืจ ืื•ื™ืกื“ืจื•ืง ืื™ืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ. ืื™ืŸ ื“ืขื ื‘ื™ื™ืฉืคึผื™ืœ ืื•ื ื˜ืŸ, ื“ื™ ื’ืขืฉืขืขื ื™ืฉ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืจืื˜ืขื•ื•ืขื˜ ืฆื• ืึท ื˜ื™ืฉ ืžื™ื˜ ืึท ื ืึธืžืขืŸ ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื“ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ื•ื•ืึทืœื•ืขืก ืคื•ืŸ ื“ื™ ืคึผืจืึธื“ื•ืงื˜_ื˜ื™ืคึผืข ืื•ืŸ _ื˜ื™ืžืขืกื˜ืึทืžืคึผ ืคืขืœื“ืขืจ (ืœืžืฉืœ supplies_2020_10):

tableName: '{{.product_type}}_{{._timestamp.Format "2006_01"}}'

ืึธื‘ืขืจ, ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ื™ื ืงืึทืžื™ื ื’ ื’ืขืฉืขืขื ื™ืฉืŸ ืงืขื ืขืŸ ื˜ื•ื™ืฉืŸ ืื™ืŸ ืจื•ื ื˜ื™ืžืข. ืžื™ืจ ื”ืึธื‘ืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืึท ืึทืœื’ืขืจื™ื“ืึทื ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ื—ื™ืœื•ืง ืฆื•ื•ื™ืฉืŸ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ืึท ื™ื’ื–ื™ืกื˜ื™ื ื’ ื˜ื™ืฉ ืื•ืŸ ื“ื™ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ืึท ื™ื ืงืึทืžื™ื ื’ ื’ืขืฉืขืขื ื™ืฉ. ืื•ื™ื‘ ืึท ื—ื™ืœื•ืง ืื™ื– ื’ืขืคึฟื•ื ืขืŸ, ื“ื™ ื˜ื™ืฉ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืžื™ื˜ ื ื™ื™ึทืข ืคืขืœื“ืขืจ. ืฆื• ื˜ืึธืŸ ื“ืึธืก, ื ื•ืฆืŸ ื“ื™ ืœืึทื˜ืข SQL ืึธื ืคึฟืจืขื’:

#ะŸั€ะธะผะตั€ ะดะปั Postgres
ALTER TABLE "schema"."table" ADD COLUMN new_column character varying

ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ

ื“ื™ ื’ืขืฉื™ื›ื˜ืข ืคื•ืŸ โ€‹โ€‹ืื•ื ื“ื–ืขืจ ืึธืคึฟืŸ ืžืงื•ืจ: ื•ื•ื™ ืžื™ืจ ื’ืขืžืื›ื˜ ืึทืŸ ืึทื ืึทืœื™ื˜ื™ืงืก ื“ื™ื ืกื˜ ืื™ืŸ Go ืื•ืŸ ื’ืขืžืื›ื˜ ืขืก ืขืคื ื˜ืœืขืš ื‘ื ื™ืžืฆื

ืคืืจื•ื•ืืก ื˜ืึธืŸ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ื’ืขืฉืขืขื ื™ืฉืŸ ืฆื• ื“ื™ ื˜ืขืงืข ืกื™ืกื˜ืขื, ืื•ืŸ ื ื™ื˜ ื ืึธืจ ืฉืจื™ื™ึทื‘ืŸ ื–ื™ื™ ื’ืœื™ื™ึทืš ืฆื• ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก? ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ื˜ืึธืŸ ื ื™ื˜ ืฉื˜ืขื ื“ื™ืง ื“ื•ืจื›ืคื™ืจืŸ ื’ื•ื˜ ื•ื•ืขืŸ ืื™ืจ ื”ืึทื ื“ืœืขืŸ ืžื™ื˜ ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ ื™ื ืกืขืจืฅ (Postgres ืจืขืงืึทืžืึทื ื“ื™ื™ืฉืึทื ื–). ืฆื• ื˜ืึธืŸ ื“ืึธืก, ืœืึธื’ืขืจ ืฉืจื™ื™ื‘ื˜ ื™ื ืงืึทืžื™ื ื’ ื’ืขืฉืขืขื ื™ืฉืŸ ืฆื• ืึท ื˜ืขืงืข ืื•ืŸ ืื™ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื’ืึธืจืึธื•ื˜ื™ื ืข (ืคืึธื“ืขื) ื˜ืขืงืข ืœื™ื™ืขื ืขืจ ืœื™ื™ืขื ืขืŸ ื“ื™ ื˜ืขืงืข, ืื•ืŸ ื“ื™ ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ืงืึธื ื•ื•ืขืจื˜ืขื“ ืื•ืŸ ื‘ืืฉืœืืกืŸ. ื ืึธืš ื“ื™ ื˜ื™ืฉ ืคืึทืจื•ื•ืึทืœื˜ืขืจ ืžืื›ื˜ ื–ื™ื›ืขืจ ืึทื– ื“ื™ ื˜ื™ืฉ ืกื˜ืฉืขืžืึท ืื™ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜, ื“ื™ ื“ืึทื˜ืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืฉืจื™ื‘ืŸ ืฆื• ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื™ืŸ ืื™ื™ืŸ ืคึผืขืงืœ. ื“ืขืจื ืึธืš, ืžื™ืจ ืฆื•ื’ืขื’ืขื‘ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ื“ืึทื˜ืŸ ื’ืœื™ื™ึทืš ืฆื• ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก, ืึธื‘ืขืจ ืžื™ืจ ื ื•ืฆืŸ ื“ืขื ืžืึธื“ืข ืคึฟืึทืจ ื’ืขืฉืขืขื ื™ืฉืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ืกืš - ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืงืึทื ื•ื•ืขืจื–ืฉืึทื ื–.

ืขืคึฟืŸ ืžืงื•ืจ ืื•ืŸ ืคึผืœืึทื ื– ืคึฟืึทืจ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜

ืื™ืŸ ืขื˜ืœืขื›ืข ืคื•ื ื˜, ื“ื™ ื“ื™ื ืกื˜ ืื ื’ืขื”ื•ื™ื‘ืŸ ืฆื• ืงื•ืงืŸ ื•ื•ื™ ืึท ืคื•ืœ-ืคืœืขื“ื–ืฉื“ ืคึผืจืึธื“ื•ืงื˜ ืื•ืŸ ืžื™ืจ ื‘ืึทืฉืœืึธืกืŸ ืฆื• ืžืขืœื“ื•ื ื’ ืขืก ืฆื• ืขืคึฟืŸ ืžืงื•ืจ. ื“ืขืจื•ื•ื™ื™ึทืœ, ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทื ื– ืžื™ื˜ Postgres, ClickHouse, BigQuery, Redshift, S3, Snowflake ื–ืขื ืขืŸ ื™ืžืคึผืœืึทืžืขื ืึทื“. ื›ืœ ื™ื ืึทื’ืจื™ื™ืฉืึทื ื– ืฉื˜ื™ืฆืŸ ื‘ื™ื™ื“ืข ืคึผืขืงืœ ืื•ืŸ ืกื˜ืจื™ืžื™ื ื’ ืžืึธื“ืขืก ืคื•ืŸ ื“ืึทื˜ืŸ ืœืึธื•ื“ื™ื ื’. ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืจื™ืงื•ื•ืขืก ื“ื•ืจืš ืึทืคึผื™.

ื“ื™ ืื™ืฆื˜ื™ืงืข ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ืกื›ืขืžืข ืงื•ืงื˜ ื•ื•ื™ ื“ืึธืก:

ื“ื™ ื’ืขืฉื™ื›ื˜ืข ืคื•ืŸ โ€‹โ€‹ืื•ื ื“ื–ืขืจ ืึธืคึฟืŸ ืžืงื•ืจ: ื•ื•ื™ ืžื™ืจ ื’ืขืžืื›ื˜ ืึทืŸ ืึทื ืึทืœื™ื˜ื™ืงืก ื“ื™ื ืกื˜ ืื™ืŸ Go ืื•ืŸ ื’ืขืžืื›ื˜ ืขืก ืขืคื ื˜ืœืขืš ื‘ื ื™ืžืฆื

ื›ืึธื˜ืฉ ื“ื™ ืกืขืจื•ื•ื™ืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ื™ื ื“ื™ืคึผืขื ื“ืึทื ื˜ืœื™ (ืœืžืฉืœ ื ื™ืฆืŸ ื“ืึธืงืขืจ), ืžื™ืจ ืื•ื™ืš ื”ืึธื‘ืŸ ื›ืึธื•ืกื˜ื™ื“ ื•ื•ืขืจืกื™ืข, ืื™ืŸ ื•ื•ืึธืก ืื™ืจ ืงืขื ืขืŸ ืฉื˜ืขืœืŸ ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืžื™ื˜ ืึท ื“ืึทื˜ืŸ ื•ื•ืขืจื›ืึทื•ืก, ืœื™ื™ื’ืŸ ืึท CNAME ืฆื• ื“ื™ื™ืŸ ืคืขืœื“ ืื•ืŸ ื–ืขืŸ ืกื˜ืึทื˜ื™ืกื˜ื™ืง ืื•ื™ืฃ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ื’ืขืฉืขืขื ื™ืฉืŸ. ืื•ื ื“ื–ืขืจ ื‘ืึทืœื“ื™ืง ืคึผืœืึทื ื– ื–ืขื ืขืŸ ืฆื• ืœื™ื™ื’ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืฆื•ื ื•ื™ืคื’ื™ืกืŸ ื ื™ื˜ ื‘ืœื•ื™ื– ืกื˜ืึทื˜ื™ืกื˜ื™ืง ืคึฟื•ืŸ ืึท ื•ื•ืขื‘ ืžื™ื˜ืœ, ืึธื‘ืขืจ ืื•ื™ืš ื“ืึทื˜ืŸ ืคึฟื•ืŸ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื“ืึทื˜ืŸ ืงื•ื•ืืœืŸ ืื•ืŸ ืฉืคึผืึธืจืŸ ื–ื™ื™ ืื™ืŸ ืงื™ื™ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ ืคื•ืŸ ื“ื™ื™ืŸ ื‘ืจื™ืจื”!

โ†’ ื’ื™ื˜ื”ื•ื‘
โ†’ ื“ืึธืงื•ืžืขื ื˜ืึทื˜ื™ืึธืŸ
โ†’ ืœื•ื™ื–

ืžื™ืจ ื•ื•ืขืœืŸ ื–ื™ื™ืŸ ืฆื•ืคืจื™ื“ืŸ ืื•ื™ื‘ EventNative ื”ืขืœืคึผืก ืกืึธืœื•ื•ืข ื“ื™ื™ืŸ ืคึผืจืึธื‘ืœืขืžืก!

ื‘ืœื•ื™ื– ืจืขื’ื™ืกื˜ืจื™ืจื˜ ื ื™ืฆืขืจืก ืงืขื ืขืŸ ืึธื ื˜ื™ื™ืœ ื ืขืžืขืŸ ืื™ืŸ ื“ื™ ื™ื‘ืขืจื‘ืœื™ืง. ืกื™ื™ืŸ ืืจื™ื™ืŸื‘ื™ื˜ืข.

ื•ื•ืึธืก ืกื˜ืึทื˜ื™ืกื˜ื™ืง ื–ืึทืžืœื•ื ื’ ืกื™ืกื˜ืขื ืื™ื– ื’ืขื ื™ืฆื˜ ืื™ืŸ ื“ื™ื™ืŸ ืคื™ืจืžืข?

  • ืงืกื ื•ืžืงืก%Google Analytics 12

  • ืงืกื ื•ืžืงืก%ืกืขื’ืžืขื ื˜ 1

  • ืงืกื ื•ืžืงืก%ืืŸ ืื ื“ืขืจ (ืฉืจื™ื™ื‘ืŸ ืื™ืŸ ื“ื™ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ)4

  • ืงืกื ื•ืžืงืก%ื™ืžืคึผืœืึทืžืขื ื˜ืึทื“ ื“ื™ื™ืŸ ืกืขืจื•ื•ื™ืก 8

25 ื‘ืื ื•ืฆืขืจ ื”ืื‘ืŸ ื’ืขืฉื˜ื™ืžื˜. 6 ื‘ืื ื•ืฆืขืจ ื”ืื‘ืŸ ื–ื™ืš ืืคื’ืขื”ืืœื˜ืŸ.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’