เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ• เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—

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

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

เจœเจพเจฆเฉ‚ เจ…เจคเฉ‡ เจœเจพเจฆเฉ‚ เจฆเฉ‡ เจœเจพเจฆเฉ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ เจ‡เจธ เจ•เฉ‡เจธ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจนเฉˆ - เจ•เฉฑเจŸ เจฆเฉ‡ เจนเฉ‡เจ เจพเจ‚ เจชเฉœเฉเจนเฉ‹! เจœเจพเจฃเจพ!

เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ• เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—
(เจšเจฟเฉฑเจคเจฐ เจธเจฐเฉ‹เจค)

เจœเจพเจฃ เจชเจ›เจพเจฃ

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

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

เจตเจฟเจ•เจธเจค เจธเจฟเจธเจŸเจฎ เจฆเจพ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ

เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ• เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—

เจตเจฐเจคเฉ‡ เจ—เจ เจนเจฟเฉฑเจธเฉ‡:

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

เจ•เจพเจซเจ•เจพ เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ…เจคเฉ‡ เจšเจฒเจพเจ‰เจฃเจพ

เจ•เจพเจซเจ•เจพ เจฆเฉ€ เจธเจฟเฉฑเจงเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ•เจฟ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจœเจพเจตเจพ เจนเฉˆ, เจ•เจฟเจ‰เจ‚เจ•เจฟ... JVM เจ•เฉฐเจฎ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ:

sudo apt-get update 
sudo apt-get install default-jre
java -version

เจ•เจพเจซเจ•เจพ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฌเจฃเจพเจ“:

sudo useradd kafka -m
sudo passwd kafka
sudo adduser kafka sudo

เจ…เฉฑเจ—เฉ‡, เจ…เจงเจฟเจ•เจพเจฐเจค เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจตเฉˆเจฌเจธเจพเจˆเจŸ เจคเฉ‹เจ‚ เจตเฉฐเจก เจจเฉ‚เฉฐ เจกเจพเจ‰เจจเจฒเฉ‹เจก เจ•เจฐเฉ‹:

wget -P /YOUR_PATH "http://apache-mirror.rbc.ru/pub/apache/kafka/2.2.0/kafka_2.12-2.2.0.tgz"

เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เฉ€เจคเฉ‡ เจ†เจฐเจ•เจพเจˆเจต เจจเฉ‚เฉฐ เจ…เจจเจชเฉˆเจ• เจ•เจฐเฉ‹:

tar -xvzf /YOUR_PATH/kafka_2.12-2.2.0.tgz
ln -s /YOUR_PATH/kafka_2.12-2.2.0 kafka

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

vim ~/kafka/config/server.properties

เจซเจพเจˆเจฒ เจฆเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจจเฉ‚เฉฐ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹:

delete.topic.enable = true

เจ•เจพเจซเจ•เจพ เจธเจฐเจตเจฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจœเจผเฉ‚เจ•เฉ€เจชเจฐ เจธเจฐเจตเจฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ; เจ…เจธเฉ€เจ‚ เจธเจนเจพเจ‡เจ• เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡ เจœเฉ‹ เจ•เจพเจซเจ•เจพ เจตเฉฐเจก เจฆเฉ‡ เจจเจพเจฒ เจ†เจ‰เจ‚เจฆเฉ€ เจนเฉˆ:

Cd ~/kafka
bin/zookeeper-server-start.sh config/zookeeper.properties

ZooKeeper เจฆเฉ‡ เจธเจซเจฒเจคเจพเจชเฉ‚เจฐเจตเจ• เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ•เจพเจซเจ•เจพ เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจŸเจฐเจฎเฉ€เจจเจฒ เจตเจฟเฉฑเจš เจฒเจพเจ‚เจš เจ•เจฐเฉ‹:

bin/kafka-server-start.sh config/server.properties

เจ†เจ‰ เจŸเฉเจฐเจพเจ‚เจœเฉˆเจ•เจธเจผเจจ เจจเจพเจฎเจ• เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจตเจฟเจธเจผเจพ เจฌเจฃเจพเจˆเจ:

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic transaction

เจšเจฒเฉ‹ เจ‡เจน เจธเฉเจจเจฟเจธเจผเจšเจฟเจค เจ•เจฐเฉ€เจ เจ•เจฟ เจญเจพเจ—เจพเจ‚ เจ…เจคเฉ‡ เจชเฉเจฐเจคเฉ€เจ•เฉเจฐเจฟเจคเฉ€ เจฆเฉ€ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจตเจพเจฒเจพ เจตเจฟเจธเจผเจพ เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ:

bin/kafka-topics.sh --describe --zookeeper localhost:2181

เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ• เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—

เจ†เจ‰ เจจเจตเฉ‡เจ‚ เจฌเจฃเฉ‡ เจตเจฟเจธเจผเฉ‡ เจฒเจˆ เจ‰เจคเจชเจพเจฆเจ• เจ…เจคเฉ‡ เจ–เจชเจคเจ•เจพเจฐ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฆเฉ‡ เจชเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจ—เฉเจ† เจฆเฉ‡เจˆเจ. เจคเฉเจธเฉ€เจ‚ เจธเฉเจจเฉ‡เจนเฉ‡ เจญเฉ‡เจœเจฃ เจ…เจคเฉ‡ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจนเฉ‹เจฐ เจตเฉ‡เจฐเจตเฉ‡ เจ…เจงเจฟเจ•เจพเจฐเจค เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจตเจฟเฉฑเจš เจฒเจฟเจ–เฉ‡ เจ—เจ เจนเจจ - เจ•เฉเจ เจธเฉเจจเฉ‡เจนเฉ‡ เจญเฉ‡เจœเฉ‹. เจ–เฉˆเจฐ, เจ…เจธเฉ€เจ‚ KafkaProducer API เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจชเจพเจˆเจฅเจจ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจจเจฟเจฐเจฎเจพเจคเจพ เจฒเจฟเจ–เจฃ เจฒเจˆ เจ…เฉฑเจ—เฉ‡ เจตเจงเจฆเฉ‡ เจนเจพเจ‚เฅค

เจจเจฟเจฐเจฎเจพเจคเจพ เจฒเจฟเจ–เจฃเจพ

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

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

เจจเจฟเจฐเจฎเจพเจคเจพ เจฒเจˆ เจ•เฉ‹เจก เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจฆเจพ เจนเฉˆ:

from numpy.random import choice, randint

def get_random_value():
    new_dict = {}

    branch_list = ['Kazan', 'SPB', 'Novosibirsk', 'Surgut']
    currency_list = ['RUB', 'USD', 'EUR', 'GBP']

    new_dict['branch'] = choice(branch_list)
    new_dict['currency'] = choice(currency_list)
    new_dict['amount'] = randint(-100, 100)

    return new_dict

เจ…เฉฑเจ—เฉ‡, เจญเฉ‡เจœเจฃ เจตเจฟเจงเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจ…เจธเฉ€เจ‚ เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเฉเจจเฉ‡เจนเจพ เจญเฉ‡เจœเจฆเฉ‡ เจนเจพเจ‚, เจœเจฟเจธ เจตเจฟเจธเจผเฉ‡ เจฆเฉ€ เจธเจพเจจเฉ‚เฉฐ เจฒเฉ‹เฉœ เจนเฉˆ, JSON เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš:

from kafka import KafkaProducer    

producer = KafkaProducer(bootstrap_servers=['localhost:9092'],
                             value_serializer=lambda x:dumps(x).encode('utf-8'),
                             compression_type='gzip')
my_topic = 'transaction'
data = get_random_value()

try:
    future = producer.send(topic = my_topic, value = data)
    record_metadata = future.get(timeout=10)
    
    print('--> The message has been sent to a topic: 
            {}, partition: {}, offset: {}' 
            .format(record_metadata.topic,
                record_metadata.partition,
                record_metadata.offset ))   
                             
except Exception as e:
    print('--> It seems an Error occurred: {}'.format(e))

finally:
    producer.flush()

เจธเจ•เฉเจฐเจฟเจชเจŸ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจธเจพเจจเฉ‚เฉฐ เจŸเจฐเจฎเฉ€เจจเจฒ เจตเจฟเฉฑเจš เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจธเฉเจจเฉ‡เจนเฉ‡ เจชเฉเจฐเจพเจชเจค เจนเฉเฉฐเจฆเฉ‡ เจนเจจ:

เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ• เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—

เจ‡เจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจ•เจฟ เจธเจญ เจ•เฉเจ เจ‰เจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ…เจธเฉ€เจ‚ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเจพเจ‚ - เจจเจฟเจฐเจฎเจพเจคเจพ เจธเจพเจจเฉ‚เฉฐ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจตเจฟเจธเจผเฉ‡ 'เจคเฉ‡ เจธเฉฐเจฆเฉ‡เจธเจผ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจญเฉ‡เจœเจฆเจพ เจนเฉˆเฅค
เจ…เจ—เจฒเจพ เจ•เจฆเจฎ เจธเจชเจพเจฐเจ• เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ‡เจธ เจธเฉฐเจฆเฉ‡เจธเจผ เจธเจŸเฉเจฐเฉ€เจฎ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเจจเจพ เจนเฉˆเฅค

เจ…เจชเจพเจšเฉ‡ เจธเจชเจพเจฐเจ• เจธเจฅเจพเจชเจค เจ•เจฐเจจเจพ

เจ…เจชเจพเจšเฉ‡ เจธเจชเจพเจฐเจ• เจ‡เฉฑเจ• เจฏเฉ‚เจจเฉ€เจตเจฐเจธเจฒ เจ…เจคเฉ‡ เจ‰เฉฑเจš-เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจตเจพเจฒเจพ เจ•เจฒเฉฑเจธเจŸเจฐ เจ•เฉฐเจชเจฟเจŠเจŸเจฟเฉฐเจ— เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจนเฉˆเฅค

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

เจ‡เจน เจซเจฐเฉ‡เจฎเจตเจฐเจ• Scala เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจ—เจฟเจ† เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธเจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

sudo apt-get install scala

เจ…เจงเจฟเจ•เจพเจฐเจค เจตเฉˆเฉฑเจฌเจธเจพเจˆเจŸ เจคเฉ‹เจ‚ เจธเจชเจพเจฐเจ• เจตเฉฐเจก เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเฉ‹:

wget "http://mirror.linux-ia64.org/apache/spark/spark-2.4.2/spark-2.4.2-bin-hadoop2.7.tgz"

เจ†เจฐเจ•เจพเจˆเจต เจจเฉ‚เฉฐ เจ…เจจเจชเฉˆเจ• เจ•เจฐเฉ‹:

sudo tar xvf spark-2.4.2/spark-2.4.2-bin-hadoop2.7.tgz -C /usr/local/spark

เจฌเฉˆเจธเจผ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจธเจชเจพเจฐเจ• เจฆเจพ เจฎเจพเจฐเจ— เจœเฉ‹เฉœเฉ‹:

vim ~/.bashrc

เจธเฉฐเจชเจพเจฆเจ• เจฆเฉเจ†เจฐเจพ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€เจ†เจ‚ เจฒเจพเจˆเจจเจพเจ‚ เจœเฉ‹เฉœเฉ‹:

SPARK_HOME=/usr/local/spark
export PATH=$SPARK_HOME/bin:$PATH

bashrc เจตเจฟเฉฑเจš เจฌเจฆเจฒเจพเจ… เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจ•เจฎเจพเจ‚เจก เจšเจฒเจพเจ“:

source ~/.bashrc

AWS PostgreSQL เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เฉ€เจคเจพ เจœเจพ เจฐเจฟเจนเจพ เจนเฉˆ

เจœเฉ‹ เจฌเจšเจฟเจ† เจนเฉˆ เจ‰เจน เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเจจเจพ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจธเจŸเฉเจฐเฉ€เจฎเจพเจ‚ เจคเฉ‹เจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เฉ€เจคเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจจเฉ‚เฉฐ เจ…เจชเจฒเฉ‹เจก เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจ…เจธเฉ€เจ‚ AWS RDS เจธเฉ‡เจตเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

AWS เจ•เฉฐเจธเฉ‹เจฒ -> AWS RDS -> เจกเจพเจŸเจพเจฌเฉ‡เจธ -> เจกเจพเจŸเจพเจฌเฉ‡เจธ เจฌเจฃเจพเจ“ 'เจคเฉ‡ เจœเจพเจ“:
เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ• เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—

PostgreSQL เจšเฉเจฃเฉ‹ เจ…เจคเฉ‡ เจ…เฉฑเจ—เฉ‡ เจ•เจฒเจฟเฉฑเจ• เจ•เจฐเฉ‹:
เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ• เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจน เจ‰เจฆเจพเจนเจฐเจจ เจธเจฟเจฐเจซเจผ เจตเจฟเจฆเจฟเจ…เจ• เจ‰เจฆเฉ‡เจธเจผเจพเจ‚ เจฒเจˆ เจนเฉˆ; เจ…เจธเฉ€เจ‚ "เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ" (เจฎเฉเจซเจผเจค เจŸเฉ€เจ…เจฐ) เจ‡เฉฑเจ• เจฎเฉเจซเจผเจค เจธเจฐเจตเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡:
เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ• เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—

เจ…เฉฑเจ—เฉ‡, เจ…เจธเฉ€เจ‚ เจซเฉเจฐเฉ€ เจŸเฉ€เจ…เจฐ เจฌเจฒเจพเจ• เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจŸเจฟเจ• เจฒเจ—เจพ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚, เจ…เจคเฉ‡ เจ‰เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจธเจพเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจนเฉ€ t2.micro เจ•เจฒเจพเจธ เจฆเฉ€ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจชเฉ‡เจธเจผ เจ•เฉ€เจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€ - เจนเจพเจฒเจพเจ‚เจ•เจฟ เจ‡เจน เจ•เจฎเจœเจผเฉ‹เจฐ เจนเฉˆ, เจ‡เจน เจธเจพเจกเฉ‡ เจ•เฉฐเจฎ เจฒเจˆ เจฎเฉเจซเจค เจ…เจคเฉ‡ เจ•เจพเจซเจผเฉ€ เจขเฉเจ•เจตเจพเจ‚ เจนเฉˆ:
เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ• เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—

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

เจ…เจ—เจฒเฉ‡ เจชเฉฐเจจเฉ‡ 'เจคเฉ‡ เจธเจพเจกเฉ‡ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจธเจฐเจตเจฐ เจฆเฉ€ เจฌเจพเจนเจฐเฉ‹เจ‚ เจชเจนเฉเฉฐเจšเจฏเฉ‹เจ—เจคเจพ (เจœเจจเจคเจ• เจชเจนเฉเฉฐเจšเจฏเฉ‹เจ—เจคเจพ) เจ…เจคเฉ‡ เจชเฉ‹เจฐเจŸ เจ‰เจชเจฒเจฌเจงเจคเจพ เจฒเจˆ เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐ เจฎเจพเจชเจฆเฉฐเจก เจนเจจ:

เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ• เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—

เจšเจฒเฉ‹ VPC เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเจฎเฉ‚เจน เจฒเจˆ เจ‡เฉฑเจ• เจจเจตเฉ€เจ‚ เจธเฉˆเจŸเจฟเฉฐเจ— เจฌเจฃเจพเจˆเจ, เจœเฉ‹ เจชเฉ‹เจฐเจŸ 5432 (PostgreSQL) เจฐเจพเจนเฉ€เจ‚ เจธเจพเจกเฉ‡ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจธเจฐเจตเจฐ เจคเฉฑเจ• เจฌเจพเจนเจฐเฉ€ เจชเจนเฉเฉฐเจš เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเฉ‡เจตเฉ‡เจ—เฉ€เฅค
เจšเจฒเฉ‹ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ€ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฐเจกเฉ‹ เจตเจฟเฉฑเจš AWS เจ•เฉฐเจธเฉ‹เจฒ เจคเฉ‡ VPC เจกเฉˆเจธเจผเจฌเฉ‹เจฐเจก -> เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเจฎเฉ‚เจน -> เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเจฎเฉ‚เจน เจธเฉˆเจ•เจธเจผเจจ เจฌเจฃเจพเจ“:
เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ• เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—

เจ…เจธเฉ€เจ‚ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเจฎเฉ‚เจน เจฒเจˆ เจจเจพเจฎ เจธเฉˆเฉฑเจŸ เจ•เฉ€เจคเจพ เจนเฉˆ - PostgreSQL, เจ‡เฉฑเจ• เจตเฉ‡เจฐเจตเจพ, เจ‡เจน เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจธเจฎเฉ‚เจน เจ•เจฟเจธ VPC เจจเจพเจฒ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจฌเจฃเจพเจ“ เจฌเจŸเจจ 'เจคเฉ‡ เจ•เจฒเจฟเฉฑเจ• เจ•เจฐเฉ‹:
เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ• เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—

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

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

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

เจ…เฉฑเจ—เฉ‡, เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเจ•เจฒเจชเจพเจ‚ เจตเจฟเฉฑเจš -> เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเจพเจฎ -> เจจเจพเจฎ เจธเฉˆเฉฑเจŸ เจ•เจฐเฉ‹ - habrDB.

เจ…เจธเฉ€เจ‚ เจกเจฟเจซเฉŒเจฒเจŸ เจคเฉŒเจฐ 'เจคเฉ‡, เจฌเฉˆเจ•เจ…เฉฑเจช (เจฌเฉˆเจ•เจ…เฉฑเจช เจงเจพเจฐเจจ เจฆเฉ€ เจฎเจฟเจ†เจฆ - 0 เจฆเจฟเจจ), เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ…เจคเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจ‡เจจเจธเจพเจˆเจŸเจธ เจจเฉ‚เฉฐ เจ…เจฏเฉ‹เจ— เจ•เจฐเจจ เจฆเฉ‡ เจ…เจชเจตเจพเจฆ เจฆเฉ‡ เจจเจพเจฒ, เจฌเจพเจ•เฉ€ เจฎเจพเจชเจฆเฉฐเจกเจพเจ‚ เจจเฉ‚เฉฐ เจ›เฉฑเจก เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค เจฌเจŸเจจ 'เจคเฉ‡ เจ•เจฒเจฟเฉฑเจ• เจ•เจฐเฉ‹ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจฌเจฃเจพเจ“:
เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ• เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—

เจฅเจฐเจฟเฉฑเจก เจนเฉˆเจ‚เจกเจฒเจฐ

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

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

เจšเฉˆเจ•เจชเฉเจ†เจ‡เฉฐเจŸเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจจเฉเจ•เจธ-เจธเจนเจฟเจฃเจธเจผเฉ€เจฒ, เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ— เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ HDFS, S3, เจ†เจฆเจฟ) เจ‰เฉฑเจคเฉ‡ เจ‡เฉฑเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจธเฉˆเจŸ เจ•เจฐเจ•เฉ‡ เจธเจฎเจฐเฉฑเจฅ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจšเฉˆเฉฑเจ•เจชเฉเจ†เจ‡เฉฐเจŸ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€เฅค เจ‡เจน เจตเจฐเจค เจ•เฉ‡ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ:

streamingContext.checkpoint(checkpointDirectory)

เจธเจพเจกเฉ€ เจ‰เจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจชเจนเฉเฉฐเจš เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจ…เจฐเจฅเจพเจค, เจœเฉ‡เจ•เจฐ เจšเฉˆเฉฑเจ•เจชเฉเจ†เจ‡เฉฐเจŸ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจฎเฉŒเจœเฉ‚เจฆ เจนเฉˆ, เจคเจพเจ‚ เจธเฉฐเจฆเจฐเจญ เจจเฉ‚เฉฐ เจšเฉˆเฉฑเจ•เจชเฉเจ†เจ‡เฉฐเจŸ เจกเฉ‡เจŸเจพ เจคเฉ‹เจ‚ เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจ‡เจ† เจœเจพเจตเฉ‡เจ—เจพเฅค เจœเฉ‡เจ•เจฐ เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจฎเฉŒเจœเฉ‚เจฆ เจจเจนเฉ€เจ‚ เจนเฉˆ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจชเจนเจฟเจฒเฉ€ เจตเจพเจฐ เจšเจฒเจพเจ‡เจ† เจ—เจฟเจ†), เจคเจพเจ‚ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจธเฉฐเจฆเจฐเจญ เจฌเจฃเจพเจ‰เจฃ เจ…เจคเฉ‡ DStreams เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจฒเจˆ functionToCreateContext เจจเฉ‚เฉฐ เจฌเฉเจฒเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ:

from pyspark.streaming import StreamingContext

context = StreamingContext.getOrCreate(checkpointDirectory, functionToCreateContext)

เจ…เจธเฉ€เจ‚ KafkaUtils เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ createDirectStream เจตเจฟเจงเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ "เจŸเฉเจฐเจพเจ‚เจœเฉˆเจ•เจธเจผเจจ" เจตเจฟเจธเจผเฉ‡ เจจเจพเจฒ เจœเฉเฉœเจจ เจฒเจˆ เจ‡เฉฑเจ• เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจธเจŸเฉเจฐเฉ€เจฎ เจ†เจฌเจœเฉˆเจ•เจŸ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚:

from pyspark.streaming.kafka import KafkaUtils
    
sc = SparkContext(conf=conf)
ssc = StreamingContext(sc, 2)

broker_list = 'localhost:9092'
topic = 'transaction'

directKafkaStream = KafkaUtils.createDirectStream(ssc,
                                [topic],
                                {"metadata.broker.list": broker_list})

JSON เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจ†เจ‰เจฃ เจตเจพเจฒเฉ‡ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจจเจพ:

rowRdd = rdd.map(lambda w: Row(branch=w['branch'],
                                       currency=w['currency'],
                                       amount=w['amount']))
                                       
testDataFrame = spark.createDataFrame(rowRdd)
testDataFrame.createOrReplaceTempView("treasury_stream")

เจธเจชเจพเจฐเจ• SQL เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจ—เจฐเฉเฉฑเจชเจฟเฉฐเจ— เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจจเจคเฉ€เจœเจพ เจ•เฉฐเจธเฉ‹เจฒ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚:

select 
    from_unixtime(unix_timestamp()) as curr_time,
    t.branch                        as branch_name,
    t.currency                      as currency_code,
    sum(amount)                     as batch_value
from treasury_stream t
group by
    t.branch,
    t.currency

เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจŸเฉˆเจ•เจธเจŸ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจธเจชเจพเจฐเจ• SQL เจฆเฉเจ†เจฐเจพ เจšเจฒเจพเจ‰เจฃเจพ:

sql_query = get_sql_query()
testResultDataFrame = spark.sql(sql_query)
testResultDataFrame.show(n=5)

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

testResultDataFrame.write 
    .format("jdbc") 
    .mode("append") 
    .option("driver", 'org.postgresql.Driver') 
    .option("url","jdbc:postgresql://myhabrtest.ciny8bykwxeg.us-east-1.rds.amazonaws.com:5432/habrDB") 
    .option("dbtable", "transaction_flow") 
    .option("user", "habr") 
    .option("password", "habr12345") 
    .save()

AWS RDS เจจเจพเจฒ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฌเจพเจฐเฉ‡ เจ•เฉเจ เจธเจผเจฌเจฆเฅค เจ…เจธเฉ€เจ‚ "AWS PostgreSQL เจฆเฉ€ เจคเฉˆเจจเจพเจคเฉ€" เจชเฉœเจพเจ… 'เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ…เจคเฉ‡ เจชเจพเจธเจตเจฐเจก เจฌเจฃเจพเจ‡เจ† เจนเฉˆเฅค เจคเฉเจนเจพเจจเฉ‚เฉฐ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจธเจฐเจตเจฐ url เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจเจ‚เจกเจชเฉเจ†เจ‡เฉฐเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ, เจœเฉ‹ เจ•เจจเฉˆเจ•เจŸเฉ€เจตเจฟเจŸเฉ€ เจ…เจคเฉ‡ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจธเฉˆเจ•เจธเจผเจจ เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจนเฉเฉฐเจฆเจพ เจนเฉˆ:

เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ• เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—

เจธเจชเจพเจฐเจ• เจ…เจคเฉ‡ เจ•เจพเจซเจ•เจพ เจจเฉ‚เฉฐ เจธเจนเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจœเฉ‹เฉœเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ†เจฐเจŸเฉ€เจซเฉˆเจ•เจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเจฎเจพเจฐเจ•-เจธเจฌเจฎเจฟเจŸ เจฐเจพเจนเฉ€เจ‚ เจ•เฉฐเจฎ เจšเจฒเจพเจ‰เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจธเจชเจพเจฐเจ•-เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ—-เจ•เจพเจซเจ•เจพ-0-8_2.11. เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ…เจธเฉ€เจ‚ PostgreSQL เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเจพเจฒ เจ‡เฉฐเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจ†เจฐเจŸเฉ€เจซเฉˆเจ•เจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจตเฉ€ เจ•เจฐเจพเจ‚เจ—เฉ‡; เจ…เจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ --packages เจฐเจพเจนเฉ€เจ‚ เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

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

เจ‡เจธ เจฒเจˆ, เจ‡เจน เจธเจฟเจธเจŸเจฎ เจฆเฉ€ เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ เจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจ•เจฐเจจ เจ…เจคเฉ‡ เจœเจพเจ‚เจšเจฃ เจฆเจพ เจธเจฎเจพเจ‚ เจนเฉˆ:

spark-submit 
--packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.0.2,
org.postgresql:postgresql:9.4.1207 
spark_job.py localhost:9092 transaction

เจธเจญ เจ•เฉเจ เจ•เฉฐเจฎ เจ•เฉ€เจคเจพ! เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจคเจธเจตเฉ€เจฐ เจตเจฟเฉฑเจš เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจœเจฆเฉ‹เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจšเฉฑเจฒ เจฐเจนเฉ€ เจนเฉˆ, เจจเจตเฉ‡เจ‚ เจเจ—เจฐเฉ€เจ—เฉ‡เจธเจผเจจ เจจเจคเฉ€เจœเฉ‡ เจนเจฐ 2 เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจ†เจ‰เจŸเจชเฉเฉฑเจŸ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ, เจ•เจฟเจ‰เจ‚เจ•เจฟ เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจ•เฉฐเจŸเฉˆเจ•เจธเจŸ เจ†เจฌเจœเฉˆเจ•เจŸ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจฌเฉˆเจšเจฟเฉฐเจ— เจ…เฉฐเจคเจฐเจพเจฒ เจจเฉ‚เฉฐ 2 เจธเจ•เจฟเฉฐเจŸเจพเจ‚ 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚:

เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ• เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—

เจ…เฉฑเจ—เฉ‡, เจ…เจธเฉ€เจ‚ เจธเจพเจฐเจฃเฉ€ เจตเจฟเฉฑเจš เจฐเจฟเจ•เจพเจฐเจกเจพเจ‚ เจฆเฉ€ เจฎเฉŒเจœเฉ‚เจฆเจ—เฉ€ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฒเจˆ เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจฒเฉˆเจฃ-เจฆเฉ‡เจฃ_เจชเฉเจฐเจตเจพเจน:

เจ…เจชเจพเจšเฉ‡ เจ•เจพเจซเจ•เจพ เจ…เจคเฉ‡ เจธเจชเจพเจฐเจ• เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจฆเฉ‡ เจจเจพเจฒ เจธเจŸเฉเจฐเฉ€เจฎเจฟเฉฐเจ— เจกเฉ‡เจŸเจพ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฟเฉฐเจ—

เจธเจฟเฉฑเจŸเจพ

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

เจคเฉเจธเฉ€เจ‚ เจฎเฉ‡เจฐเฉ‡ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจชเฉ‚เจฐเจพ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจ‡เฉฑเจฅเฉ‡ เจฒเฉฑเจญ เจธเจ•เจฆเฉ‡ เจนเฉ‹ GitHub.

เจฎเฉˆเจ‚ เจ‡เจธ เจฒเฉ‡เจ– 'เจคเฉ‡ เจšเจฐเจšเจพ เจ•เจฐเจ•เฉ‡ เจ–เฉเจธเจผ เจนเจพเจ‚, เจฎเฉˆเจ‚ เจคเฉเจนเจพเจกเฉ€เจ†เจ‚ เจŸเจฟเฉฑเจชเจฃเฉ€เจ†เจ‚ เจฆเฉ€ เจ‰เจฎเฉ€เจฆ เจ•เจฐเจฆเจพ เจนเจพเจ‚, เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจธเจพเจฐเฉ‡ เจฆเฉ‡เจ–เจญเจพเจฒ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจชเจพเจ เจ•เจพเจ‚ เจคเฉ‹เจ‚ เจ‰เจธเจพเจฐเฉ‚ เจ†เจฒเฉ‹เจšเจจเจพ เจฆเฉ€ เจตเฉ€ เจ‰เจฎเฉ€เจฆ เจ•เจฐเจฆเจพ เจนเจพเจ‚เฅค

เจฎเฉˆเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจซเจฒเจคเจพ เจฆเฉ€ เจ•เจพเจฎเจจเจพ เจ•เจฐเจฆเจพ เจนเจพเจ‚!

เจœเจผเจฌเฉ‚. เจธเจผเฉเจฐเฉ‚ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจฅเจพเจจเจ• PostgreSQL เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจœเจจเจพ เจฌเจฃเจพเจˆ เจ—เจˆ เจธเฉ€, เจชเจฐ AWS เจฒเจˆ เจฎเฉ‡เจฐเฉ‡ เจชเจฟเจ†เจฐ เจจเฉ‚เฉฐ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเฉ‹เจ, เจฎเฉˆเจ‚ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเฉ‚เฉฐ เจ•เจฒเจพเจ‰เจก เจตเจฟเฉฑเจš เจญเฉ‡เจœเจฃ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ. เจ‡เจธ เจตเจฟเจธเจผเฉ‡ 'เจคเฉ‡ เจ…เจ—เจฒเฉ‡ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš, เจฎเฉˆเจ‚ เจฆเจฟเจ–เจพเจตเจพเจ‚เจ—เจพ เจ•เจฟ AWS เจตเจฟเฉฑเจš AWS Kinesis เจ…เจคเฉ‡ AWS EMR เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ‰เฉฑเจชเจฐ เจฆเฉฑเจธเฉ‡ เจ—เจ เจชเฉ‚เจฐเฉ‡ เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจนเฉˆเฅค เจ–เจผเจฌเจฐเจพเจ‚ เจฆเจพ เจชเจพเจฒเจฃ เจ•เจฐเฉ‹!

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

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