เจเจ…เจฐเจซเจฒเฉ‹ เจฌเฉˆเจš เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจ…เจคเฉ‡ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจฌเจฃเจพเจˆ เจฐเฉฑเจ–เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจธเจพเจงเจจ เจนเฉˆ

เจเจ…เจฐเจซเจฒเฉ‹ เจฌเฉˆเจš เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจ…เจคเฉ‡ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจฌเจฃเจพเจˆ เจฐเฉฑเจ–เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจธเจพเจงเจจ เจนเฉˆ

เจนเฉˆเจฒเฉ‹, เจนเฉˆเจฌเจฐ! เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจฎเฉˆเจ‚ เจฌเฉˆเจš เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจตเจงเฉ€เจ† เจŸเฉ‚เจฒ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจ•เจพเจฐเจชเฉ‹เจฐเฉ‡เจŸ DWH เจœเจพเจ‚ เจคเฉเจนเจพเจกเฉ‡ เจกเฉ‡เจŸเจพเจฒเฉ‡เจ• เจฆเฉ‡ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจตเจฟเฉฑเจš. เจ…เจธเฉ€เจ‚ เจ…เจชเจพเจšเฉ‡ เจเจ…เจฐเจซเจฒเฉ‹ (เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจเจ…เจฐเจซเจฒเฉ‹ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ) เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค เจ‡เจน เจนเฉˆเจฌเจฐเฉ‡ 'เจคเฉ‡ เจงเจฟเจ†เจจ เจฆเฉ‡เจฃ เจคเฉ‹เจ‚ เจตเจพเจ‚เจเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจฎเฉเฉฑเจ– เจนเจฟเฉฑเจธเฉ‡ เจตเจฟเฉฑเจš เจฎเฉˆเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจ เจฆเจฟเจตเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจพเจ‚เจ—เจพ เจ•เจฟ เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ ETL/ELT เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจธเจผเจกเจฟเจŠเจฒเจฐ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจเจ…เจฐเจซเจฒเฉ‹ เจฆเฉ‡เจ–เจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉˆเฅค

เจชเจนเจฟเจฒเจพเจ‚, เจœเจฆเฉ‹เจ‚ เจฎเฉˆเจ‚ เจŸเจฟเฉฐเจ•เฉ‹เจซ เจฌเฉˆเจ‚เจ• เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เฉ€เจคเจพ เจธเฉ€ เจคเจพเจ‚ เจฎเฉˆเจ‚ DWH เจฆเฉ‡ เจตเจฟเจธเจผเฉ‡ 'เจคเฉ‡ เจฒเฉ‡เจ–เจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจฒเฉœเฉ€ เจฒเจฟเจ–เฉ€ เจธเฉ€เฅค เจนเฉเจฃ เจฎเฉˆเจ‚ Mail.Ru เจ—เจฐเฉเฉฑเจช เจŸเฉ€เจฎ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจฌเจฃ เจ—เจฟเจ† เจนเจพเจ‚ เจ…เจคเฉ‡ เจ—เฉ‡เจฎเจฟเฉฐเจ— เจ–เฉ‡เจคเจฐ เจตเจฟเฉฑเจš เจกเจพเจŸเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจฒเจˆ เจ‡เฉฑเจ• เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจคเจฟเจ†เจฐ เจ•เจฐ เจฐเจฟเจนเจพ/เจฐเจนเฉ€ เจนเจพเจ‚เฅค เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจœเจฟเจตเฉ‡เจ‚ เจนเฉ€ เจ–เจฌเจฐเจพเจ‚ เจ…เจคเฉ‡ เจฆเจฟเจฒเจšเจธเจช เจนเฉฑเจฒ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจจ, เจฎเฉˆเจ‚ เจ…เจคเฉ‡ เจฎเฉ‡เจฐเฉ€ เจŸเฉ€เจฎ เจ‡เฉฑเจฅเฉ‡ เจกเฉ‡เจŸเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจฒเจˆ เจธเจพเจกเฉ‡ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

เจชเฉเจฐเฉ‹เจฒเฉ‹เจ—

เจ‡เจธ เจฒเจˆ, เจ†เจ“ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ€เจ. เจเจ…เจฐเจซเจฒเฉ‹ เจ•เฉ€ เจนเฉˆ? เจ‡เจน เจ‡เฉฑเจ• เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจนเฉˆ (เจœเจพเจ‚ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฆเจพ เจธเฉˆเฉฑเจŸเจ•เฉฐเจฎ เจฆเฉ€เจ†เจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ, เจฏเฉ‹เจœเจจเจพ เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจจ เจฒเจˆเฅค เจเจ…เจฐเจซเจฒเฉ‹ เจฆเฉ€ เจฎเฉเฉฑเจ– เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ: เจชเจพเจˆเจฅเจจ เจ•เฉ‹เจก เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ (เจตเจฟเจ•เจพเจธ) เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจคเฉเจนเจพเจกเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ…เจคเฉ‡ เจตเจฟเจ•เจพเจธ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เจธ เจฆเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจซเจพเจ‡เจฆเฉ‡ เจนเจจ: เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš, เจคเฉเจนเจพเจกเจพ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ) ETL เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจชเจพเจˆเจฅเจจ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจนเฉˆ, เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚, เจŸเฉ€เจฎ เจฆเฉ‡ เจ†เจ•เจพเจฐ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจฒเฉ‹เฉœเจพเจ‚. เจธเจพเจงเจจเจพเจคเจฎเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจญ เจ•เฉเจ เจธเจงเจพเจฐเจจ เจนเฉˆ. เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ PyCharm + Git เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹เฅค เจ‡เจน เจธเจผเจพเจจเจฆเจพเจฐ เจ…เจคเฉ‡ เจฌเจนเฉเจค เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจนเฉˆ!

เจ†เจ‰ เจนเฉเจฃ เจเจ…เจฐเจซเจฒเฉ‹ เจฆเฉ€เจ†เจ‚ เจฎเฉเฉฑเจ– เจ‡เจ•เจพเจˆเจ†เจ‚ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เฉ€เจ. เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจคเฉฑเจค เจ…เจคเฉ‡ เจ‰เจฆเฉ‡เจธเจผ เจจเฉ‚เฉฐ เจธเจฎเจ เจ•เฉ‡, เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจจเฉ‚เฉฐ เจตเจงเฉ€เจ† เจขเฉฐเจ— เจจเจพเจฒ เจตเจฟเจตเจธเจฅเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจธเจผเจพเจ‡เจฆ เจฎเฉเฉฑเจ– เจนเจธเจคเฉ€ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจก เจเจธเจพเจˆเจ•เจฒเจฟเจ• เจ—เฉเจฐเจพเจซ เจนเฉˆ (เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจกเฉ€เจเจœเฉ€ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ)เฅค

เจกเฉ€.เจ.เจœเฉ€.

เจ‡เฉฑเจ• เจกเฉ€เจเจœเฉ€ เจคเฉเจนเจพเจกเฉ‡ เจ•เจพเจฐเจœเจพเจ‚ เจฆเจพ เจ•เฉเจ เจ…เจฐเจฅเจชเฉ‚เจฐเจจ เจธเจฌเฉฐเจง เจนเฉˆ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ–เจพเจธ เจ…เจจเฉเจธเฉ‚เจšเฉ€ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจ‡เฉฑเจ• เจธเจ–เจคเฉ€ เจจเจพเจฒ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เฉเจฐเจฎ เจตเจฟเฉฑเจš เจชเฉ‚เจฐเจพ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹เฅค เจเจ…เจฐเจซเจฒเฉ‹ DAGs เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจธเฉฐเจธเจฅเจพเจตเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจตเฉˆเฉฑเจฌ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ:

เจเจ…เจฐเจซเจฒเฉ‹ เจฌเฉˆเจš เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจ…เจคเฉ‡ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจฌเจฃเจพเจˆ เจฐเฉฑเจ–เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจธเจพเจงเจจ เจนเฉˆ

DAG เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡ เจธเจ•เจฆเจพ เจนเฉˆ:

เจเจ…เจฐเจซเจฒเฉ‹ เจฌเฉˆเจš เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจ…เจคเฉ‡ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจฌเจฃเจพเจˆ เจฐเฉฑเจ–เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจธเจพเจงเจจ เจนเฉˆ

เจกเจฟเจตเฉˆเจฒเจชเจฐ, เจœเจฆเฉ‹เจ‚ เจ‡เฉฑเจ• เจกเฉ€เจเจœเฉ€ เจกเจฟเจœเจผเจพเจˆเจจ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ“เจชเจฐเฉ‡เจŸเจฐเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเฉˆเฉฑเจŸ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆ เจœเจฟเจธ เจ‰เฉฑเจคเฉ‡ เจกเฉ€เจเจœเฉ€ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ•เฉฐเจฎ เจฌเจฃเจพเจ เจœเจพเจฃเจ—เฉ‡เฅค เจ‡เฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจธเฉฐเจธเจฅเจพ เจตเฉฑเจฒ เจ†เจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚: เจเจ…เจฐเจซเจฒเฉ‹ เจ†เจชเจฐเฉ‡เจŸเจฐเฅค

เจ“เจชเจฐเฉ‡เจŸเจฐ

เจ‡เฉฑเจ• เจ†เจชเจฐเฉ‡เจŸเจฐ เจ‡เฉฑเจ• เจ…เจœเจฟเจนเฉ€ เจ‡เจ•เจพเจˆ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจœเจฟเจธ เจฆเฉ‡ เจ…เจงเจพเจฐ 'เจคเฉ‡ เจจเฉŒเจ•เจฐเฉ€ เจฆเฉ€เจ†เจ‚ เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจฌเจฃเจพเจˆเจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ, เจœเฉ‹ เจฆเฉฑเจธเจฆเฉ€ เจนเฉˆ เจ•เจฟ เจจเฉŒเจ•เจฐเฉ€ เจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจจ เจฆเฉ‡ เจ…เจฎเจฒ เจฆเฉŒเจฐเจพเจจ เจ•เฉ€ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค GitHub เจคเฉ‹เจ‚ เจเจ…เจฐเจซเจฒเฉ‹ เจฐเจฟเจฒเฉ€เจœเจผ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจตเจฐเจคเจฃ เจฒเจˆ เจคเจฟเจ†เจฐ เจ“เจชเจฐเฉ‡เจŸเจฐเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเฉˆเฉฑเจŸ เจฐเฉฑเจ–เจฆเจพ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚:

  • BashOperator - เจ‡เฉฑเจ• bash เจ•เจฎเจพเจ‚เจก เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจ†เจชเจฐเฉ‡เจŸเจฐเฅค
  • PythonOperator - Python เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจจ เจฒเจˆ เจ†เจชเจฐเฉ‡เจŸเจฐเฅค
  • EmailOperator โ€” เจˆเจฎเฉ‡เจฒ เจญเฉ‡เจœเจฃ เจฒเจˆ เจ†เจชเจฐเฉ‡เจŸเจฐเฅค
  • HTTPOperator - http เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ†เจชเจฐเฉ‡เจŸเจฐเฅค
  • SqlOperator - SQL เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ เจ†เจชเจฐเฉ‡เจŸเจฐเฅค
  • เจธเฉˆเจ‚เจธเจฐ เจ‡เฉฑเจ• เจ‡เจตเฉˆเจ‚เจŸ เจฆเฉ€ เจ‰เจกเฉ€เจ• เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจ“เจชเจฐเฉ‡เจŸเจฐ เจนเฉˆ (เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจฆเจพ เจ†เจ—เจฎเจจ, เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€ เจซเจพเจˆเจฒ เจฆเฉ€ เจฆเจฟเฉฑเจ–, เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฒเจพเจˆเจจ, API เจคเฉ‹เจ‚ เจœเจตเจพเจฌ, เจ†เจฆเจฟ, เจ†เจฆเจฟ)เฅค

เจ‡เฉฑเจฅเฉ‡ เจนเฉ‹เจฐ เจ–เจพเจธ เจ“เจชเจฐเฉ‡เจŸเจฐ เจนเจจ: DockerOperator, HiveOperator, S3FileTransferOperator, PrestoToMysqlOperator, SlackOperatorเฅค

เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡ เจ†เจชเจฐเฉ‡เจŸเจฐ เจตเฉ€ เจตเจฟเจ•เจธเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš เจตเจฐเจค เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ…เจธเฉ€เจ‚ MongoDBToHiveViaHdfsTransfer, MongoDB เจคเฉ‹เจ‚ Hive เจตเจฟเฉฑเจš เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจจเจฟเจฐเจฏเจพเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจ†เจชเจฐเฉ‡เจŸเจฐ, เจ…เจคเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ•เจˆ เจ“เจชเจฐเฉ‡เจŸเจฐ เจฌเจฃเจพเจ เจนเจจเฅค เจ•เจฒเจฟเจ•เจนเจพouseเจธ: CHLoadFromHiveOperator เจ…เจคเฉ‡ CHTableLoaderOperatorเฅค เจœเจผเจฐเฉ‚เจฐเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡, เจœเจฟเจตเฉ‡เจ‚ เจนเฉ€ เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‡ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจธเจŸเฉ‡เจŸเจฎเฉˆเจ‚เจŸเจพเจ‚ 'เจคเฉ‡ เจฌเจฃเฉ‡ เจ•เฉ‹เจก เจฆเฉ€ เจ…เจ•เจธเจฐ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจนเฉˆ, เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจฌเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฌเจฃเจพเจ‰เจฃ เจฌเจพเจฐเฉ‡ เจธเฉ‹เจš เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‡เจน เจนเฉ‹เจฐ เจตเจฟเจ•เจพเจธ เจจเฉ‚เฉฐ เจธเจฐเจฒ เจฌเจฃเจพ เจฆเฉ‡เจตเฉ‡เจ—เจพ, เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจตเจฟเฉฑเจš เจ†เจชเจฐเฉ‡เจŸเจฐเจพเจ‚ เจฆเฉ€ เจ†เจชเจฃเฉ€ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเจพ เจตเจฟเจธเจคเจพเจฐ เจ•เจฐเฉ‹เจ—เฉ‡เฅค

เจ…เฉฑเจ—เฉ‡, เจ•เจพเจฐเจœเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจ‡เจนเจจเจพเจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ, เจ…เจคเฉ‡ เจนเฉเจฃ เจ…เจธเฉ€เจ‚ เจธเจผเจกเจฟเจŠเจฒเจฐ เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เจฐเจพเจ‚เจ—เฉ‡.

เจธเจผเจกเจฟเจŠเจฒเจฐ

เจเจ…เจฐเจซเจฒเฉ‹ เจฆเจพ เจŸเจพเจธเจ• เจธเจผเจกเจฟเจŠเจฒเจฐ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ เจ…เจœเจตเจพเจ‡เจจ. เจธเฉˆเจฒเจฐเฉ€ เจ‡เฉฑเจ• เจชเจพเจˆเจฅเจจ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจนเฉˆ เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ•เจคเจพเจฐ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฆเฉ‡ เจจเจพเจฒ เจจเจพเจฒ เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ เจ…เจคเฉ‡ เจ•เจพเจฐเจœเจพเจ‚ เจฆเฉ€ เจตเฉฐเจกเฉ€ เจนเฉ‹เจˆ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค เจเจ…เจฐเจซเจฒเฉ‹ เจตเจพเจฒเฉ‡ เจชเจพเจธเฉ‡, เจธเจพเจฐเฉ‡ เจ•เฉฐเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉ‚เจฒ เจตเจฟเฉฑเจš เจตเฉฐเจกเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค เจชเฉ‚เจฒ เจนเฉฑเจฅเฉ€เจ‚ เจฌเจฃเจพเจ เจ—เจ เจนเจจเฅค เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‰เจนเจจเจพเจ‚ เจฆเจพ เจ‰เจฆเฉ‡เจธเจผ เจธเจฐเฉ‹เจค เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ‡ เจ•เฉฐเจฎ เจฆเฉ‡ เจฌเฉ‹เจ เจจเฉ‚เฉฐ เจธเฉ€เจฎเจค เจ•เจฐเจจเจพ เจœเจพเจ‚ DWH เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจ•เจพเจฐเจœเจพเจ‚ เจจเฉ‚เฉฐ เจŸเจพเจˆเจช เจ•เจฐเจจเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจชเฉ‚เจฒ เจตเฉˆเฉฑเจฌ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจ•เฉ€เจคเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเจจ:

เจเจ…เจฐเจซเจฒเฉ‹ เจฌเฉˆเจš เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจ…เจคเฉ‡ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจฌเจฃเจพเจˆ เจฐเฉฑเจ–เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจธเจพเจงเจจ เจนเฉˆ

เจนเจฐเฉ‡เจ• เจชเฉ‚เจฒ เจตเจฟเฉฑเจš เจธเจฒเจพเจŸเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจฆเฉ€ เจ‡เฉฑเจ• เจธเฉ€เจฎเจพ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค DAG เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจชเฉ‚เจฒ เจฆเจฟเฉฑเจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ:

ALERT_MAILS =  Variable.get("gv_mail_admin_dwh")
DAG_NAME = 'dma_load'
OWNER = 'Vasya Pupkin'
DEPENDS_ON_PAST = True
EMAIL_ON_FAILURE = True
EMAIL_ON_RETRY = True
RETRIES = int(Variable.get('gv_dag_retries'))
POOL = 'dma_pool'
PRIORITY_WEIGHT = 10

start_dt = datetime.today() - timedelta(1)
start_dt = datetime(start_dt.year, start_dt.month, start_dt.day)

default_args = {
    'owner': OWNER,
    'depends_on_past': DEPENDS_ON_PAST,
    'start_date': start_dt,
    'email': ALERT_MAILS,
    'email_on_failure': EMAIL_ON_FAILURE,
    'email_on_retry': EMAIL_ON_RETRY,
    'retries': RETRIES,
    'pool': POOL,
    'priority_weight': PRIORITY_WEIGHT
}
dag = DAG(DAG_NAME, default_args=default_args)
dag.doc_md = __doc__

DAG เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ‡เฉฑเจ• เจชเฉ‚เจฒ เจจเฉ‚เฉฐ เจŸเจพเจธเจ• เจชเฉฑเจงเจฐ 'เจคเฉ‡ เจ“เจตเจฐเจฐเจพเจˆเจก เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค
เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†, เจธเจผเจกเจฟเจŠเจฒเจฐ, เจเจ…เจฐเจซเจฒเฉ‹ เจตเจฟเฉฑเจš เจธเจพเจฐเฉ‡ เจ•เจพเจฐเจœเจพเจ‚ เจจเฉ‚เฉฐ เจคเจนเจฟ เจ•เจฐเจจ เจฒเจˆ เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐ เจนเฉˆเฅค เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจธเจผเจกเจฟเจŠเจฒเจฐ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฒเจˆ เจ•เจพเจฐเจœเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฆเฉ‡ เจธเจพเจฐเฉ‡ เจฎเจ•เฉˆเจจเจฟเจ•เจธ เจจเจพเจฒ เจจเจœเจฟเฉฑเจ เจฆเจพ เจนเฉˆเฅค เจ•เจพเจฐเจœ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ•เจˆ เจชเฉœเจพเจตเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฒเฉฐเจ˜เจฆเจพ เจนเฉˆ:

  1. เจกเฉ€เจเจœเฉ€ เจตเจฟเฉฑเจš เจชเจฟเจ›เจฒเฉ‡ เจ•เฉฐเจฎ เจชเฉ‚เจฐเฉ‡ เจนเฉ‹ เจšเฉเฉฑเจ•เฉ‡ เจนเจจ, เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจ•เจคเจพเจฐเจฌเฉฑเจง เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค
  2. เจ•เจคเจพเจฐ เจจเฉ‚เฉฐ เจ•เจพเจฐเจœเจพเจ‚ เจฆเฉ€ เจคเจฐเจœเฉ€เจน เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ เจ•เฉเจฐเจฎเจฌเฉฑเจง เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจชเจนเจฟเจฒเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉ€ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ), เจ…เจคเฉ‡ เจœเฉ‡ เจชเฉ‚เจฒ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฎเฉเจซเจค เจธเจฒเจพเจŸ เจนเฉˆ, เจคเจพเจ‚ เจ•เจพเจฐเจœ เจจเฉ‚เฉฐ เจ•เจพเจฐเจœ เจตเจฟเฉฑเจš เจฒเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค
  3. เจœเฉ‡ เจ•เฉ‹เจˆ เจฎเฉเจซเจค เจตเจฐเจ•เจฐ เจธเฉˆเจฒเจฐเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจ•เฉฐเจฎ เจ‰เจธ เจจเฉ‚เฉฐ เจญเฉ‡เจœเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ; เจ‰เจน เจ•เฉฐเจฎ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจธเจฎเฉฑเจธเจฟเจ† เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจ•เฉ€เจคเจพ เจนเฉˆ, เจ‡เฉฑเจ• เจœเจพเจ‚ เจฆเฉ‚เจœเฉ‡ เจ†เจชเจฐเฉ‡เจŸเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค

เจ•เจพเจซเจผเฉ€ เจธเจงเจพเจฐเจจ.

เจธเจผเจกเจฟเจŠเจฒเจฐ เจธเจพเจฐเฉ‡ DAGs เจ…เจคเฉ‡ DAGs เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจธเจพเจฐเฉ‡ เจ•เจพเจฐเจœเจพเจ‚ เจฆเฉ‡ เจธเฉˆเฉฑเจŸ 'เจคเฉ‡ เจšเฉฑเจฒเจฆเจพ เจนเฉˆเฅค

DAG เจจเจพเจฒ เจ•เฉฐเจฎ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฒเจˆ เจธเจผเจกเจฟเจŠเจฒเจฐ เจฒเจˆ, DAG เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจฎเจพเจ‚-เจธเจพเจฐเจฃเฉ€ เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ:

dag = DAG(DAG_NAME, default_args=default_args, schedule_interval='@hourly')

เจ‡เฉฑเจฅเฉ‡ เจคเจฟเจ†เจฐ เจชเฉเจฐเฉ€เจธเฉˆเจŸเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน เจนเฉˆ: @once, @hourly, @daily, @weekly, @monthly, @yearly.

เจคเฉเจธเฉ€เจ‚ เจ•เฉเจฐเฉ‹เจจ เจธเจฎเฉ€เจ•เจฐเจจ เจตเฉ€ เจตเจฐเจค เจธเจ•เจฆเฉ‡ เจนเฉ‹:

dag = DAG(DAG_NAME, default_args=default_args, schedule_interval='*/10 * * * *')

เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉ€ เจฎเจฟเจคเฉ€

เจ‡เจน เจธเจฎเจเจฃ เจฒเจˆ เจ•เจฟ เจเจ…เจฐเจซเจฒเฉ‹ เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ‡เจน เจธเจฎเจเจฃเจพ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆ เจ•เจฟ เจกเฉ€เจเจœเฉ€ เจฒเจˆ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจกเฉ‡เจŸ เจ•เฉ€ เจนเฉˆเฅค เจเจ…เจฐเจซเจฒเฉ‹ เจตเจฟเฉฑเจš, DAG เจฆเจพ เจ‡เฉฑเจ• เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจกเฉ‡เจŸ เจฎเจพเจช เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจญเจพเจต, DAG เจฆเฉ‡ เจ•เฉฐเจฎ เจฆเฉ‡ เจ…เจจเฉเจธเฉ‚เจšเฉ€ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจนเจฐเฉ‡เจ• เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจกเฉ‡เจŸ เจฒเจˆ เจŸเจพเจธเจ• เจ‡เฉฐเจธเจŸเฉˆเจ‚เจธ เจฌเจฃเจพเจ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค เจ…เจคเฉ‡ เจนเจฐเฉ‡เจ• เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฎเจฟเจคเฉ€ เจฒเจˆ, เจ•เจพเจฐเจœเจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉเฉœ-เจเจ•เจœเจผเฉ€เจ•เจฟเจŠเจŸ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ - เจœเจพเจ‚, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจกเฉ€เจเจœเฉ€ เจ•เจˆ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฎเจฟเจคเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจ‡เฉฑเจ•เฉ‹ เจธเจฎเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจ‡เฉฑเจฅเฉ‡ เจธเจชเจธเจผเจŸ เจคเฉŒเจฐ 'เจคเฉ‡ เจฆเจฟเจ–เจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ:

เจเจ…เจฐเจซเจฒเฉ‹ เจฌเฉˆเจš เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจ…เจคเฉ‡ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจฌเจฃเจพเจˆ เจฐเฉฑเจ–เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจธเจพเจงเจจ เจนเฉˆ

เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ (เจœเจพเจ‚ เจธเจผเจพเจ‡เจฆ เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ: เจ‡เจน เจธเจฅเจฟเจคเฉ€ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ), เจœเฉ‡เจ•เจฐ เจกเฉ€เจเจœเฉ€ เจตเจฟเฉฑเจš เจ•เจพเจฐเจœ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจ เฉ€เจ• เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจชเจฟเจ›เจฒเฉ€ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฎเจฟเจคเฉ€ เจตเจฟเฉฑเจš เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจเจกเจœเจธเจŸเจฎเฉˆเจ‚เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ เจ…เฉฑเจ—เฉ‡ เจตเจงเฉ‡เจ—เจพเฅค เจ‡เจน เจšเฉฐเจ—เจพ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจจเจตเฉ‡เจ‚ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจชเจฟเจ›เจฒเฉ‡ เจธเจฎเฉ‡เจ‚ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจฆเฉ€ เจฎเฉเฉœ เจ—เจฃเจจเจพ เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ, เจชเจฐ เจ‡เจน เจฎเจพเฉœเจพ เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจจเจคเฉ€เจœเฉ‡ เจฆเฉ€ เจชเฉเจจเจฐ-เจ‰เจคเจชเจพเจฆเจจ เจฏเฉ‹เจ—เจคเจพ เจ–เจคเจฎ เจนเฉ‹ เจ—เจˆ เจนเฉˆ (เจฌเฉ‡เจธเจผเฉฑเจ•, เจ•เฉ‹เจˆ เจตเฉ€ เจคเฉเจนเจพเจจเฉ‚เฉฐ Git เจคเฉ‹เจ‚ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจฆเฉ‡ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจธเฉฐเจธเจ•เจฐเจฃ เจจเฉ‚เฉฐ เจตเจพเจชเจธ เจ•เจฐเจจ เจฒเจˆ เจชเจฐเฉ‡เจธเจผเจพเจจ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ•เฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเจพเจฐ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจœเจฟเจธ เจคเจฐเฉเจนเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธเจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ).

เจ•เจพเจฐเจœ เจชเฉˆเจฆเจพ เจ•เจฐเจจเจพ

เจกเฉ€เจเจœเฉ€ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจชเจพเจˆเจฅเจจ เจตเจฟเฉฑเจš เจ•เฉ‹เจก เจนเฉˆ, เจ‡เจธเจฒเจˆ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ•เฉ‹เจก เจฆเฉ€ เจฎเจพเจคเจฐเจพ เจจเฉ‚เฉฐ เจ˜เจŸเจพเจ‰เจฃ เจฆเจพ เจ‡เฉฑเจ• เจฌเจนเฉเจค เจนเฉ€ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจคเจฐเฉ€เจ•เจพ เจนเฉˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ•เฉฑเจŸเฉ‡ เจนเฉ‹เจ เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒเฅค เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจธเจฐเฉ‹เจค เจตเจœเฉ‹เจ‚ เจคเจฟเฉฐเจจ MySQL เจธเจผเจพเจฐเจก เจนเจจ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเจฐ เจ‡เฉฑเจ• เจตเจฟเฉฑเจš เจšเฉœเฉเจนเจจ เจ…เจคเฉ‡ เจ•เฉเจ เจกเจพเจŸเจพ เจšเฉเฉฑเจ•เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจธเฉเจคเฉฐเจคเจฐ เจคเฉŒเจฐ 'เจคเฉ‡ เจ…เจคเฉ‡ เจธเจฎเจพเจจเจพเจ‚เจคเจฐ. DAG เจตเจฟเฉฑเจš เจชเจพเจˆเจฅเจจ เจ•เฉ‹เจก เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡ เจธเจ•เจฆเจพ เจนเฉˆ:

connection_list = lv.get('connection_list')

export_profiles_sql = '''
SELECT
  id,
  user_id,
  nickname,
  gender,
  {{params.shard_id}} as shard_id
FROM profiles
'''

for conn_id in connection_list:
    export_profiles = SqlToHiveViaHdfsTransfer(
        task_id='export_profiles_from_' + conn_id,
        sql=export_profiles_sql,
        hive_table='stg.profiles',
        overwrite=False,
        tmpdir='/data/tmp',
        conn_id=conn_id,
        params={'shard_id': conn_id[-1:], },
        compress=None,
        dag=dag
    )
    export_profiles.set_upstream(exec_truncate_stg)
    export_profiles.set_downstream(load_profiles)

เจกเฉ€เจเจœเฉ€ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจฆเจพ เจนเฉˆ:

เจเจ…เจฐเจซเจฒเฉ‹ เจฌเฉˆเจš เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจ…เจคเฉ‡ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจฌเจฃเจพเจˆ เจฐเฉฑเจ–เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจธเจพเจงเจจ เจนเฉˆ

เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ เจธเจฟเจฐเจซเจผ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจตเจฟเจตเจธเจฅเจฟเจค เจ•เจฐเจ•เฉ‡ เจ…เจคเฉ‡ DAG เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเจ•เฉ‡ เจ‡เฉฑเจ• เจธเจผเจพเจฐเจก เจจเฉ‚เฉฐ เจœเฉ‹เฉœ เจœเจพเจ‚ เจนเจŸเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ†เจฐเจพเจฎเจฆเจพเจ‡เจ•!

เจคเฉเจธเฉ€เจ‚ เจตเจงเฉ‡เจฐเฉ‡ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจ•เฉ‹เจก เจœเจจเจฐเฉ‡เจธเจผเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจตเฉ€ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจธเจฐเฉ‹เจคเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเฉ‹ เจœเจพเจ‚ เจ‡เฉฑเจ• เจธเจพเจฐเจฃเฉ€ เจฌเจฃเจคเจฐ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเฉ‹, เจ‡เฉฑเจ• เจธเจพเจฐเจฃเฉ€ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ, เจ…เจคเฉ‡, DWH เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ, เจ‡เฉฑเจ• เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจคเจฟเจ†เจฐ เจ•เจฐเฉ‹ เจคเฉเจนเจพเจกเฉ€ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจตเจฟเฉฑเจš N เจŸเฉ‡เจฌเจฒ เจฒเฉ‹เจก เจ•เจฐเจจ เจฒเจˆเฅค เจœเจพเจ‚, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• API เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจœเฉ‹ เจ‡เฉฑเจ• เจธเฉ‚เจšเฉ€ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจธเฉ‚เจšเฉ€ เจคเฉ‹เจ‚ เจ‡เฉฑเจ• DAG เจตเจฟเฉฑเจš N เจ•เจพเจฐเจœ เจคเจฟเจ†เจฐ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, API เจตเจฟเฉฑเจš เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจฆเฉ€ เจธเจฎเจพเจจเจคเจพ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจชเฉ‚เจฒ เจคเฉฑเจ• เจธเฉ€เจฎเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ…เจคเฉ‡ เจธเจ•เฉเจฐเฉˆเจช เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค API เจคเฉ‹เจ‚ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจกเฉ‡เจŸเจพเฅค เจฒเจšเจ•เจฆเจพเจฐ!

เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€

เจเจ…เจฐเจซเจฒเฉ‹ เจฆเจพ เจ†เจชเจฃเจพ เจฌเฉˆเจ•เจเจ‚เจก เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจนเฉˆ, เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ (MySQL เจœเจพเจ‚ Postgres เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ, เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ Postgres เจนเฉˆ), เจœเฉ‹ เจ•เจฟ เจ•เฉฐเจฎ เจฆเฉ€เจ†เจ‚ เจธเจฅเจฟเจคเฉ€เจ†เจ‚, DAGs, เจ•เจจเฉˆเจ•เจธเจผเจจ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚, เจ—เจฒเฉ‹เจฌเจฒ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ, เจ†เจฆเจฟ, เจ†เจฆเจฟ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจฅเฉ‡ เจฎเฉˆเจ‚ เจ‡เจน เจ•เจนเจฟเจฃเจพ เจšเจพเจนเจพเจ‚เจ—เจพ เจ•เจฟ เจเจ…เจฐเจซเจฒเฉ‹ เจตเจฟเฉฑเจš เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจฌเจนเฉเจค เจธเจฐเจฒ เจนเฉˆ (เจฒเจ—เจญเจ— 20 เจŸเฉ‡เจฌเจฒ) เจ…เจคเฉ‡ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจนเฉˆ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจฆเฉ‡ เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจ†เจชเจฃเฉ€ เจ•เฉ‹เจˆ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹เฅค เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เจจเจซเจพเจฐเจฎเฉˆเจŸเจฟเจ•เจพ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจตเจฟเฉฑเจš 100500 เจŸเฉ‡เจฌเจฒ เจฏเจพเจฆ เจนเจจ, เจœเจฟเจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจตเจพเจฒ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ‡ เจคเจฐเฉ€เจ•เฉ‡ เจจเฉ‚เฉฐ เจธเจฎเจเจฃ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจฒเฉฐเจฌเฉ‡ เจธเจฎเฉ‡เจ‚ เจฒเจˆ เจ…เจงเจฟเจเจจ เจ•เจฐเจจเจพ เจชเฉˆเจ‚เจฆเจพ เจธเฉ€เฅค

เจจเจฟเจ—เจฐเจพเจจเฉ€

เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจฆเฉ€ เจธเจฐเจฒเจคเจพ เจฆเฉ‡ เจฎเฉฑเจฆเฉ‡เจจเจœเจผเจฐ, เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ•เจพเจฐเจœ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเฉ‹ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจœเจผเฉˆเจชเฉ‡เจฒเจฟเจจ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเฉ‹เจŸเจชเฉˆเจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจœเจฟเฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจ•เจพเจฐเจœเจพเจ‚ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚:

เจเจ…เจฐเจซเจฒเฉ‹ เจฌเฉˆเจš เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจ…เจคเฉ‡ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจฌเจฃเจพเจˆ เจฐเฉฑเจ–เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจธเจพเจงเจจ เจนเฉˆ

เจ‡เจน เจ–เฉเจฆ เจเจ…เจฐเจซเจฒเฉ‹ เจฆเจพ เจตเฉˆเฉฑเจฌ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจตเฉ€ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ:

เจเจ…เจฐเจซเจฒเฉ‹ เจฌเฉˆเจš เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจ…เจคเฉ‡ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจฌเจฃเจพเจˆ เจฐเฉฑเจ–เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจธเจพเจงเจจ เจนเฉˆ

เจเจ…เจฐเจซเจฒเฉ‹ เจ•เฉ‹เจก เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจนเฉˆ, เจ‡เจธเจฒเจˆ เจ…เจธเฉ€เจ‚ เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจตเจฟเฉฑเจš เจšเฉ‡เจคเจพเจตเจจเฉ€ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจนเฉˆเฅค เจ•เจฟเจธเฉ‡ เจ•เจพเจฐเจœ เจฆเฉ€ เจนเจฐเฉ‡เจ• เจšเฉฑเจฒ เจฐเจนเฉ€ เจ‰เจฆเจพเจนเจฐเจฃ, เจœเฉ‡เจ•เจฐ เจ•เฉ‹เจˆ เจ—เจฒเจคเฉ€ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจตเจฟเฉฑเจš เจธเจฎเฉ‚เจน เจจเฉ‚เฉฐ เจธเจชเฉˆเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจœเจฟเฉฑเจฅเฉ‡ เจชเฉ‚เจฐเฉ€ เจตเจฟเจ•เจพเจธ เจ…เจคเฉ‡ เจธเจนเจพเจ‡เจคเจพ เจŸเฉ€เจฎ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจธเจพเจจเฉ‚เฉฐ เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ (เจœเฉ‡ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡) เจฆเฉเจ†เจฐเจพ เจ‡เฉฑเจ• เจคเฉเจฐเฉฐเจค เจœเจตเจพเจฌ เจชเฉเจฐเจพเจชเจค เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ Zeppelin เจฆเฉเจ†เจฐเจพ เจธเจพเจจเฉ‚เฉฐ Airflow เจตเจฟเฉฑเจš เจ•เจพเจฐเจœเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจธเจฎเฉเฉฑเจšเฉ€ เจคเจธเจตเฉ€เจฐ เจชเฉเจฐเจพเจชเจค เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจ•เฉเฉฑเจฒ

เจเจ…เจฐเจซเจฒเฉ‹ เจฎเฉเฉฑเจ– เจคเฉŒเจฐ 'เจคเฉ‡ เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจนเฉˆ, เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ เจคเฉ‹เจ‚ เจšเจฎเจคเจ•เจพเจฐเจพเจ‚ เจฆเฉ€ เจ‰เจฎเฉ€เจฆ เจจเจนเฉ€เจ‚ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€เฅค เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจนเฉฑเจฒ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจธเจฎเจพเจ‚ เจ…เจคเฉ‡ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจจ เจฒเจˆ เจคเจฟเจ†เจฐ เจฐเจนเฉ‹เฅค เจŸเฉ€เจšเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฏเฉ‹เจ— เจนเฉˆ, เจฎเฉ‡เจฐเฉ‡ เจคเฉ‡ เจตเจฟเจธเจผเจตเจพเจธ เจ•เจฐเฉ‹, เจ‡เจน เจ‡เจธเจฆเฉ€ เจ•เฉ€เจฎเจค เจนเฉˆ. เจตเจฟเจ•เจพเจธ เจฆเฉ€ เจ—เจคเฉ€, เจฒเจšเจ•เจคเจพ, เจจเจตเฉ€เจ†เจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจธเฉŒเจ– - เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจชเจธเฉฐเจฆ เจ•เจฐเฉ‹เจ—เฉ‡เฅค เจฌเฉ‡เจธเจผเฉฑเจ•, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ‡ เจธเฉฐเจ—เจ เจจ, เจเจ…เจฐเจซเจฒเฉ‹ เจฆเฉ€ เจธเจฅเจฟเจฐเจคเจพ เจตเฉฑเจฒ เจฌเจนเฉเจค เจงเจฟเจ†เจจ เจฆเฉ‡เจฃ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ: เจšเจฎเจคเจ•เจพเจฐ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ‡.

เจนเฉเจฃ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจเจ…เจฐเจซเจฒเฉ‹ เจฐเฉ‹เจœเจผเจพเจจเจพ เจ•เฉฐเจฎ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ เจฒเจ—เจญเจ— 6,5 เจนเจœเจผเจพเจฐ เจ•เฉฐเจฎ. เจ‰เจน เจšเจฐเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจš เจ•เจพเจซเจผเฉ€ เจตเฉฑเจ–เจฐเฉ‡ เจนเจจเฅค เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจ…เจคเฉ‡ เจฌเจนเฉเจค เจ–เจพเจธ เจธเจฐเฉ‹เจคเจพเจ‚ เจคเฉ‹เจ‚ เจฎเฉเฉฑเจ– DWH เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจฒเฉ‹เจก เจ•เจฐเจจ เจฆเฉ‡ เจ•เฉฐเจฎ เจนเจจ, เจฎเฉเฉฑเจ– DWH เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจธเจŸเฉ‹เจฐเจซเจฐเฉฐเจŸ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจจ เจฆเฉ‡ เจ•เฉฐเจฎ เจนเจจ, เจ‡เฉฑเจ• เจคเฉ‡เจœเจผ DWH เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เจฐเจจ เจฆเฉ‡ เจ•เฉฐเจฎ เจนเจจ, เจฌเจนเฉเจค เจธเจพเจฐเฉ‡, เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจ•เจพเจฐเจœ เจนเจจ - เจ…เจคเฉ‡ เจเจ…เจฐเจซเจฒเฉ‹ เจฆเจฟเจจ-เจชเฉเจฐเจคเฉ€-เจฆเจฟเจจ เจ‰เจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฌเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจธเฉฐเจ–เจฟเจ† เจตเจฟเฉฑเจš เจฌเฉ‹เจฒเจฃเจพ, เจ‡เจน เจนเฉˆ 2,3 เจนเจœเจผเจพเจฐ DWH (Hadoop) เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจตเฉฑเจ–-เจตเฉฑเจ– เจœเจŸเจฟเจฒเจคเจพ เจฆเฉ‡ ELT เจ•เจพเจฐเจœ, เจฒเจ—เจญเจ—เฅค 2,5 เจธเฉŒ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจธเจฐเฉ‹เจค, เจ‡เจน เจ‡เฉฑเจ• เจŸเฉ€เจฎ เจนเฉˆ 4 ETL เจกเจฟเจตเฉˆเจฒเจชเจฐ, เจœเฉ‹ เจ•เจฟ DWH เจตเจฟเฉฑเจš ETL เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจ…เจคเฉ‡ DWH เจฆเฉ‡ เจ…เฉฐเจฆเจฐ ELT เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ— เจตเจฟเฉฑเจš เจตเฉฐเจกเจฟเจ† เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจฌเฉ‡เจธเจผเจ• เจนเฉ‹เจฐ เจ‡เฉฑเจ• เจชเฉเจฐเจธเจผเจพเจธเจ•, เจœเฉ‹ เจธเฉ‡เจตเจพ เจฆเฉ‡ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจจเจพเจฒ เจจเจœเจฟเฉฑเจ เจฆเจพ เจนเฉˆเฅค

เจญเจตเจฟเฉฑเจ– เจฒเจˆ เจฏเฉ‹เจœเจจเจพเจตเจพเจ‚

เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจฒเจพเจœเจผเจฎเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเจง เจฐเจนเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจฎเฉเฉฑเจ– เจšเฉ€เจœเจผ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจเจ…เจฐเจซเจฒเฉ‹ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš เจ•เจฐเจพเจ‚เจ—เฉ‡ เจ‰เจน เจนเฉˆ เจธเจ•เฉ‡เจฒเจฟเฉฐเจ—เฅค เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจเจ…เจฐเจซเจฒเฉ‹ เจ•เจฒเฉฑเจธเจŸเจฐ เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚, เจธเฉˆเจฒเจฐเฉ€ เจตเจฐเจ•เจฐเจพเจ‚ เจฒเจˆ เจฒเฉฑเจคเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจœเฉ‹เฉœเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚, เจ…เจคเฉ‡ เจจเฉŒเจ•เจฐเฉ€ เจฆเฉ€ เจธเจฎเจพเจ‚-เจธเจพเจฐเจฃเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจญเฉฐเจกเจพเจฐ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจธเจตเฉˆ-เจกเฉเจชเจฒเฉ€เจ•เฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจฐ เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค

เจเจชเฉ€เจฒเจพเจ—

เจ‡เจน, เจฌเฉ‡เจธเจผเฉฑเจ•, เจ‰เจน เจธเจญ เจ•เฉเจ เจจเจนเฉ€เจ‚ เจนเฉˆ เจœเฉ‹ เจฎเฉˆเจ‚ เจเจ…เจฐเจซเจฒเฉ‹ เจฌเจพเจฐเฉ‡ เจฆเฉฑเจธเจฃเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚, เจชเจฐ เจฎเฉˆเจ‚ เจฎเฉเฉฑเจ– เจจเฉเจ•เจคเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจ‰เจœเจพเจ—เจฐ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€. เจญเฉเฉฑเจ– เจ–เจพเจฃ เจจเจพเจฒ เจฒเจ—เจฆเฉ€ เจนเฉˆ, เจ‡เจธเจจเฉ‚เฉฐ เจ…เจœเจผเจฎเจพเจ“ เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจชเจธเฉฐเจฆ เจ†เจตเฉ‡เจ—เจพ :)

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹