เจนเฉเจฒเฉ, เจนเฉเจฌเจฐ! เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ เจฎเฉเจ เจฌเฉเจ เจกเฉเจเจพ เจชเฉเจฐเฉเจธเฉเจธเจฟเฉฐเจ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจจเฉเฉฐ เจตเจฟเจเจธเจค เจเจฐเจจ เจฒเจ เจเฉฑเจ เจตเจงเฉเจ เจเฉเจฒ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉฑเจ เจเจพเจฐเจชเฉเจฐเฉเจ DWH เจเจพเจ เจคเฉเจนเจพเจกเฉ เจกเฉเจเจพเจฒเฉเจ เจฆเฉ เจฌเฉเจจเจฟเจเจฆเฉ เจขเจพเจเจเฉ เจตเจฟเฉฑเจ. เจ เจธเฉเจ เจ เจชเจพเจเฉ เจเจ เจฐเจซเจฒเฉ (เจเจธ เจคเฉเจ เจฌเจพเจ เจฆ เจเจ เจฐเจซเจฒเฉ เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉ) เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐเจพเจเจเฉเฅค เจเจน เจนเฉเจฌเจฐเฉ 'เจคเฉ เจงเจฟเจเจจ เจฆเฉเจฃ เจคเฉเจ เจตเจพเจเจเจพ เจนเฉ, เจ เจคเฉ เจฎเฉเฉฑเจ เจนเจฟเฉฑเจธเฉ เจตเจฟเฉฑเจ เจฎเฉเจ เจคเฉเจนเจพเจจเฉเฉฐ เจฏเจเฉเจจ เจฆเจฟเจตเจพเจเจฃ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจพเจเจเจพ เจเจฟ เจคเฉเจนเจพเจกเฉเจเจ ETL/ELT เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจฒเจ เจเฉฑเจ เจธเจผเจกเจฟเจเจฒเจฐ เจฆเฉ เจเฉเจฃ เจเจฐเจฆเฉ เจธเจฎเฉเจ เจเฉฑเจเฉ-เจเฉฑเจ เจเจ เจฐเจซเจฒเฉ เจฆเฉเจเจฃ เจฆเฉ เจฏเฉเจ เจนเฉเฅค
เจชเจนเจฟเจฒเจพเจ, เจเจฆเฉเจ เจฎเฉเจ เจเจฟเฉฐเจเฉเจซ เจฌเฉเจเจ เจตเจฟเฉฑเจ เจเฉฐเจฎ เจเฉเจคเจพ เจธเฉ เจคเจพเจ เจฎเฉเจ DWH เจฆเฉ เจตเจฟเจธเจผเฉ 'เจคเฉ เจฒเฉเจเจพเจ เจฆเฉ เจเฉฑเจ เจฒเฉเฉ เจฒเจฟเจเฉ เจธเฉเฅค เจนเฉเจฃ เจฎเฉเจ Mail.Ru เจเจฐเฉเฉฑเจช เจเฉเจฎ เจฆเจพ เจนเจฟเฉฑเจธเจพ เจฌเจฃ เจเจฟเจ เจนเจพเจ เจ เจคเฉ เจเฉเจฎเจฟเฉฐเจ เจเฉเจคเจฐ เจตเจฟเฉฑเจ เจกเจพเจเจพ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจฒเจ เจเฉฑเจ เจชเจฒเฉเจเจซเจพเจฐเจฎ เจคเจฟเจเจฐ เจเจฐ เจฐเจฟเจนเจพ/เจฐเจนเฉ เจนเจพเจเฅค เจ เจธเจฒ เจตเจฟเฉฑเจ, เจเจฟเจตเฉเจ เจนเฉ เจเจฌเจฐเจพเจ เจ เจคเฉ เจฆเจฟเจฒเจเจธเจช เจนเฉฑเจฒ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเฉ เจนเจจ, เจฎเฉเจ เจ เจคเฉ เจฎเฉเจฐเฉ เจเฉเจฎ เจเฉฑเจฅเฉ เจกเฉเจเจพ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจฒเจ เจธเจพเจกเฉ เจชเจฒเฉเจเจซเจพเจฐเจฎ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐเจพเจเจเฉเฅค
เจชเฉเจฐเฉเจฒเฉเจ
เจเจธ เจฒเจ, เจเจ เจธเจผเฉเจฐเฉ เจเจฐเฉเจ. เจเจ
เจฐเจซเจฒเฉ เจเฉ เจนเฉ? เจเจน เจเฉฑเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจนเฉ (เจเจพเจ
เจเจ เจนเฉเจฃ เจเจ เจฐเจซเจฒเฉ เจฆเฉเจเจ เจฎเฉเฉฑเจ เจเจเจพเจเจเจ เจจเฉเฉฐ เจตเฉเจเฉเจ. เจเจนเจจเจพเจ เจฆเฉ เจคเฉฑเจค เจ เจคเฉ เจเจฆเฉเจธเจผ เจจเฉเฉฐ เจธเจฎเจ เจเฉ, เจคเฉเจธเฉเจ เจเจชเจฃเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเจฐเจเฉเจเฉเจเจเจฐ เจจเฉเฉฐ เจตเจงเฉเจ เจขเฉฐเจ เจจเจพเจฒ เจตเจฟเจตเจธเจฅเจฟเจค เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค เจธเจผเจพเจเจฆ เจฎเฉเฉฑเจ เจนเจธเจคเฉ เจกเจพเจเจฐเฉเจเจเจก เจเจธเจพเจเจเจฒเจฟเจ เจเฉเจฐเจพเจซ เจนเฉ (เจเจธ เจคเฉเจ เจฌเจพเจ เจฆ เจกเฉเจเจเฉ เจเจฟเจนเจพ เจเจพเจเจฆเจพ เจนเฉ)เฅค
เจกเฉ.เจ.เจเฉ.
เจเฉฑเจ เจกเฉเจเจเฉ เจคเฉเจนเจพเจกเฉ เจเจพเจฐเจเจพเจ เจฆเจพ เจเฉเจ เจ เจฐเจฅเจชเฉเจฐเจจ เจธเจฌเฉฐเจง เจนเฉ เจเฉ เจคเฉเจธเฉเจ เจเฉฑเจ เจเจพเจธ เจ เจจเฉเจธเฉเจเฉ เจฆเฉ เจ เจจเฉเจธเจพเจฐ เจเฉฑเจ เจธเจเจคเฉ เจจเจพเจฒ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเฉเจฐเจฎ เจตเจฟเฉฑเจ เจชเฉเจฐเจพ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจเจ เจฐเจซเจฒเฉ DAGs เจ เจคเฉ เจนเฉเจฐ เจธเฉฐเจธเจฅเจพเจตเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจตเฉเฉฑเจฌ เจเฉฐเจเจฐเจซเฉเจธ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉ:
DAG เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเฉ เจธเจเจฆเจพ เจนเฉ:
เจกเจฟเจตเฉเจฒเจชเจฐ, เจเจฆเฉเจ เจเฉฑเจ เจกเฉเจเจเฉ เจกเจฟเจเจผเจพเจเจจ เจเจฐเจฆเจพ เจนเฉ, เจเจชเจฐเฉเจเจฐเจพเจ เจฆเจพ เจเฉฑเจ เจธเฉเฉฑเจ เจฐเฉฑเจเจฆเจพ เจนเฉ เจเจฟเจธ เจเฉฑเจคเฉ เจกเฉเจเจเฉ เจฆเฉ เจ เฉฐเจฆเจฐ เจเฉฐเจฎ เจฌเจฃเจพเจ เจเจพเจฃเจเฉเฅค เจเฉฑเจฅเฉ เจ เจธเฉเจ เจเฉฑเจ เจนเฉเจฐ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจธเฉฐเจธเจฅเจพ เจตเฉฑเจฒ เจเจเจเจฆเฉ เจนเจพเจ: เจเจ เจฐเจซเจฒเฉ เจเจชเจฐเฉเจเจฐเฅค
เจเจชเจฐเฉเจเจฐ
เจเฉฑเจ เจเจชเจฐเฉเจเจฐ เจเฉฑเจ เจ
เจเจฟเจนเฉ เจเจเจพเจ เจนเฉเฉฐเจฆเฉ เจนเฉ เจเจฟเจธ เจฆเฉ เจ
เจงเจพเจฐ 'เจคเฉ เจจเฉเจเจฐเฉ เจฆเฉเจเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจฌเจฃเจพเจเจเจ เจเจพเจเจฆเฉเจเจ เจนเจจ, เจเฉ เจฆเฉฑเจธเจฆเฉ เจนเฉ เจเจฟ เจจเฉเจเจฐเฉ เจฆเฉ เจเจฆเจพเจนเจฐเจจ เจฆเฉ เจ
เจฎเจฒ เจฆเฉเจฐเจพเจจ เจเฉ เจนเฉเจตเฉเจเจพเฅค
- BashOperator - เจเฉฑเจ bash เจเจฎเจพเจเจก เจเจฒเจพเจเจฃ เจฒเจ เจเจชเจฐเฉเจเจฐเฅค
- PythonOperator - Python เจเฉเจก เจจเฉเฉฐ เจเจพเจฒ เจเจฐเจจ เจฒเจ เจเจชเจฐเฉเจเจฐเฅค
- EmailOperator โ เจเจฎเฉเจฒ เจญเฉเจเจฃ เจฒเจ เจเจชเจฐเฉเจเจฐเฅค
- HTTPOperator - http เจฌเฉเจจเจคเฉเจเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจเจชเจฐเฉเจเจฐเฅค
- SqlOperator - SQL เจเฉเจก เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฒเจ เจเจชเจฐเฉเจเจฐเฅค
- เจธเฉเจเจธเจฐ เจเฉฑเจ เจเจตเฉเจเจ เจฆเฉ เจเจกเฉเจ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจเจชเจฐเฉเจเจฐ เจนเฉ (เจฒเฉเฉเฉเจเจฆเฉ เจธเจฎเฉเจ เจฆเจพ เจเจเจฎเจจ, เจฒเฉเฉเฉเจเจฆเฉ เจซเจพเจเจฒ เจฆเฉ เจฆเจฟเฉฑเจ, เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจฒเจพเจเจจ, API เจคเฉเจ เจเจตเจพเจฌ, เจเจฆเจฟ, เจเจฆเจฟ)เฅค
เจเฉฑเจฅเฉ เจนเฉเจฐ เจเจพเจธ เจเจชเจฐเฉเจเจฐ เจนเจจ: DockerOperator, HiveOperator, S3FileTransferOperator, PrestoToMysqlOperator, SlackOperatorเฅค
เจคเฉเจธเฉเจ เจเจชเจฃเฉเจเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ เจเจชเจฐเฉเจเจฐ เจตเฉ เจตเจฟเจเจธเจค เจเจฐ เจธเจเจฆเฉ เจนเฉ เจ
เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเจชเจฃเฉ เจชเฉเจฐเฉเจเฉเจเจ เจตเจฟเฉฑเจ เจตเจฐเจค เจธเจเจฆเฉ เจนเฉเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจ
เจธเฉเจ MongoDBToHiveViaHdfsTransfer, MongoDB เจคเฉเจ Hive เจตเจฟเฉฑเจ เจฆเจธเจคเจพเจตเฉเจเจผ เจจเจฟเจฐเจฏเจพเจค เจเจฐเจจ เจฒเจ เจเฉฑเจ เจเจชเจฐเฉเจเจฐ, เจ
เจคเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจเจ เจเจชเจฐเฉเจเจฐ เจฌเจฃเจพเจ เจนเจจเฅค
เจ เฉฑเจเฉ, เจเจพเจฐเจเจพเจ เจฆเฉเจเจ เจเจนเจจเจพเจ เจธเจพเจฐเฉเจเจ เจเจฆเจพเจนเจฐเจฃเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ, เจ เจคเฉ เจนเฉเจฃ เจ เจธเฉเจ เจธเจผเจกเจฟเจเจฒเจฐ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐเจพเจเจเฉ.
เจธเจผเจกเจฟเจเจฒเจฐ
เจเจ
เจฐเจซเจฒเฉ เจฆเจพ เจเจพเจธเจ เจธเจผเจกเจฟเจเจฒเจฐ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉ
เจนเจฐเฉเจ เจชเฉเจฒ เจตเจฟเฉฑเจ เจธเจฒเจพเจเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจฆเฉ เจเฉฑเจ เจธเฉเจฎเจพ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค 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 เจชเฉฑเจงเจฐ 'เจคเฉ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเฉฑเจ เจชเฉเจฒ เจจเฉเฉฐ เจเจพเจธเจ เจชเฉฑเจงเจฐ 'เจคเฉ เจเจตเจฐเจฐเจพเจเจก เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจเฉฑเจ เจตเฉฑเจเจฐเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ, เจธเจผเจกเจฟเจเจฒเจฐ, เจเจ
เจฐเจซเจฒเฉ เจตเจฟเฉฑเจ เจธเจพเจฐเฉ เจเจพเจฐเจเจพเจ เจจเฉเฉฐ เจคเจนเจฟ เจเจฐเจจ เจฒเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจนเฉเฅค เจ
เจธเจฒ เจตเจฟเฉฑเจ, เจธเจผเจกเจฟเจเจฒเจฐ เจเจเจเจผเฉเจเจฟเจเจธเจผเจจ เจฒเจ เจเจพเจฐเจเจพเจ เจจเฉเฉฐ เจธเฉเฉฑเจ เจเจฐเจจ เจฆเฉ เจธเจพเจฐเฉ เจฎเจเฉเจจเจฟเจเจธ เจจเจพเจฒ เจจเจเจฟเฉฑเจ เจฆเจพ เจนเฉเฅค เจเจพเจฐเจ เจจเฉเฉฐ เจชเฉเจฐเจพ เจเจฐเจจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจเจ เจชเฉเจพเจตเจพเจ เจตเจฟเฉฑเจเฉเจ เจฒเฉฐเจเจฆเจพ เจนเฉ:
- เจกเฉเจเจเฉ เจตเจฟเฉฑเจ เจชเจฟเจเจฒเฉ เจเฉฐเจฎ เจชเฉเจฐเฉ เจนเฉ เจเฉเฉฑเจเฉ เจนเจจ, เจเฉฑเจ เจจเจตเจพเจ เจเจคเจพเจฐเจฌเฉฑเจง เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
- เจเจคเจพเจฐ เจจเฉเฉฐ เจเจพเจฐเจเจพเจ เจฆเฉ เจคเจฐเจเฉเจน เจฆเฉ เจ เจงเจพเจฐ เจคเฉ เจเฉเจฐเจฎเจฌเฉฑเจง เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ (เจชเจนเจฟเจฒเจคเจพเจตเจพเจ เจจเฉเฉฐ เจตเฉ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ), เจ เจคเฉ เจเฉ เจชเฉเจฒ เจตเจฟเฉฑเจ เจเฉฑเจ เจฎเฉเจซเจค เจธเจฒเจพเจ เจนเฉ, เจคเจพเจ เจเจพเจฐเจ เจจเฉเฉฐ เจเจพเจฐเจ เจตเจฟเฉฑเจ เจฒเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
- เจเฉ เจเฉเจ เจฎเฉเจซเจค เจตเจฐเจเจฐ เจธเฉเจฒเจฐเฉ เจนเฉ, เจคเจพเจ เจเฉฐเจฎ เจเจธ เจจเฉเฉฐ เจญเฉเจเจฟเจ เจเจพเจเจฆเจพ เจนเฉ; เจเจน เจเฉฐเจฎ เจเฉ เจคเฉเจธเฉเจ เจธเจฎเฉฑเจธเจฟเจ เจตเจฟเฉฑเจ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจเฉเจคเจพ เจนเฉ, เจเฉฑเจ เจเจพเจ เจฆเฉเจเฉ เจเจชเจฐเฉเจเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจธเจผเฉเจฐเฉ เจนเฉเฉฐเจฆเจพ เจนเฉเฅค
เจเจพเจซเจผเฉ เจธเจงเจพเจฐเจจ.
เจธเจผเจกเจฟเจเจฒเจฐ เจธเจพเจฐเฉ 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