Նախորդ բլոգում մենք քննարկել ենք խմբաքանակի մշակումը Apache flink-ում, այս մեկում մենք կանդրադառնանք, թե ինչպես է Apache flink-ը գործնականում մշակում իրական ժամանակի տվյալները:

Սկսենք

Իրական ժամանակի մշակումը տվյալների մշակման ժամանակակից համակարգերի կարևոր բաղադրիչն է: Տվյալները մշակվում են իրական ժամանակում, երբ դրանք մտնում են համակարգ, և արդյունքները ստացվում են գրեթե ակնթարթորեն:

Apache Flink-ը բաց կոդով հոսքերի մշակման հզոր շրջանակ է՝ իրական ժամանակի մշակման հնարավորություններով:
Այս բլոգի գրառման մեջ մենք կդիտարկենք իրական ժամանակի մշակումը Apache Flink-ում՝ օգտագործելով PyFlink:

Իրական ժամանակի մշակում Apache Flink-ում

Apache Flink-ը բաշխված հոսքի մշակման շրջանակ է, որը նախատեսված է մեծ քանակությամբ հոսքային տվյալների մշակման համար՝ պահպանելով բարձր թողունակությունը և ցածր հետաձգումը:

Apache Flink-ը մշակում է հոսքային տվյալները՝ բաժանելով դրանք փոքր, կառավարելի կտորների, որոնք հայտնի են որպես պատուհաններ:

Այս պատուհանները հնարավորություն են տալիս Apache Flink-ին վերլուծել տվյալները համակարգ մուտք գործելիս՝ թույլ տալով իրական ժամանակում մշակել:

Apache Flink-ն օգտագործում է DataStream API իրական ժամանակում մշակման համար: DataStream API-ը բարձր մակարդակի API է, որն ապահովում է օպերատորների հավաքածու մեծ քանակությամբ հոսքային տվյալների մշակման համար:
DataStream API աջակցում է տվյալների տարբեր աղբյուրներ և տրամադրում է հզոր օպերատորներ տվյալների փոխակերպման, զտման, խմբավորման և հավաքման համար:

Apache Flink-ի հետ իրական ժամանակում մշակման մեջ ներգրավված փուլերը հետևյալն են.

Տվյալների աղբյուր. Իրական ժամանակում մշակման առաջին քայլը տվյալների աղբյուր ընտրելն է: Apache Flink-ն աջակցում է տվյալների աղբյուրների լայն շրջանակ, ներառյալ Kafka, Kinesis և RabbitMQ:

Տվյալների փոխակերպում.Տվյալների աղբյուրը որոշելուց հետո տվյալները պետք է փոխակերպվեն: Apache Flink-ի կողմից հասանելի տվյալների փոխակերպման բազմաթիվ օպերատորներից միայն մի քանիսն են ներառում քարտեզը, զտիչը, միանալը և խումբը:

Տվյալների խորտակիչ. Տվյալները փոխելուց հետո մշակված տվյալները պետք է պահվեն տվյալների լվացարանում՝ որպես վերջնական քայլ: Apache Flink-ն աջակցում է տվյալների խորտակիչների լայն շրջանակ, ներառյալ Kafka, Kinesis և RabbitMQ:

Իրական ժամանակի մշակման նմուշ՝ օգտագործելով DataStream API-ն Apache Flink-ում Python-ով.

Նշում.Նախորդ բլոգի նույն օրինակը փոխվել է իրական ժամանակի օրինակի:

#create a Stream Execution Environment
s_env = StreamExecutionEnvironment.get_execution_environment()

#define a source
input_data = [("apple", 1), ("banana", 2), ("apple", 3), ("banana", 4), ("apple", 5)]
input_ds = s_env.from_collection(input_data)

#apply transformations
result_ds = input_ds
.key_by(lambda x: x[0])
.sum(1)

#define a sink
result_ds.print()

#execute the program
s_env.execute()

Բացատրություն

Օգտագործելով StreamExecutionEnvironment դասը, մենք այս օրինակում նախ ստեղծում ենք հոսքի կատարման միջավայր: Հաջորդ քայլը տվյալների աղբյուրի սահմանումն է, որը կոչվում է input_ds՝ Python հավաքածուն վերածելով DataStream-ի:

Բանալին ըստ փոխակերպման օգտագործվում է տվյալների խմբավորման համար ըստ tuple-ի առաջին տարրի, և գումարի փոխակերպումն օգտագործվում է յուրաքանչյուր խմբի համար տուպլեքսի երկրորդ տարրի գումարը ստանալու համար:

Ստացված DataStream-ի վրա տպման մեթոդն այնուհետև օգտագործվում է լվացարան սահմանելու համար՝ արդյունքը վահանակում տպելով:

Այնուհետև մենք գործարկում ենք հավելվածը՝ կանչելով Stream Execution Environment-ի կատարման մեթոդը:

Apache Flink-ում իրական ժամանակի մշակման առավելությունները

Apache Flink-ում իրական ժամանակում մշակումն ապահովում է մի քանի առավելություններ, այդ թվում՝

Ցածր ուշացում. Քանի որ Apache Flink-ը ստեղծված է հոսքային տվյալները փոքր ուշացումով մշակելու համար, այն կատարյալ է իրական ժամանակում մշակում պահանջող ծրագրերի համար:

Ծավալայնություն. Apache Flink-ը նախագծված է մեծ մասշտաբային լինելու համար՝ այն դարձնելով իդեալական իրական ժամանակում մեծ ծավալի հոսքային տվյալների մշակման համար:

Սխալների հանդուրժողականություն. Apache Flink-ը նախագծված է սխալներին հանդուրժող լինելու համար, ինչը նշանակում է, որ այն կարող է ինքնաբերաբար վերականգնել խափանումներից:

Ճկունություն. Apache Flink-ն առաջարկում է տվյալների աղբյուրների և տվյալների խորտակիչների մեծ ընտրանի՝ դարձնելով այն ճկուն շրջանակ մի շարք հավելվածների համար:

Եզրակացություն

Այն հավելվածների համար, որոնք պահանջում են անհապաղ մշակում և տվյալների արձագանք, իրական ժամանակի մշակումը կարևոր է:

Apache Flink-ը հզոր բաց կոդով հոսքերի մշակման շրջանակ է, որն աջակցում է տվյալների տարբեր աղբյուրներին և ներթափանցմանը և ապահովում է իրական ժամանակի մշակման հնարավորություններ:

Իր իրական ժամանակում մշակման հնարավորությունների պատճառով Apache Flink-ը իդեալական շրջանակ է այնպիսի ծրագրերի լայն շրջանակի համար, ինչպիսիք են խարդախության հայտնաբերումը, իրական ժամանակի մոնիտորինգը: եւպրակտիվ սպասարկում:

Apache Flink-ը հզոր շրջանակ է տվյալների իրական ժամանակի մշակման համար՝ շնորհիվ իր ընդլայնելիության, անսարքությունների հանդուրժողականության, և <: strong>ներկայացումը:

Մենք ավելի խորը կխորանանք Apache Flink-ում իրական ժամանակում մշակման մեջ առաջիկա բլոգում:

Հետևեք ինձ ավելի շատ նման բլոգների համար և ծափ տվեք, եթե ձեզ դուր է գալիս այս բլոգը:

— — — — — — — — Ինձ սուրճ գնիր — — — — — — — -

Ավելի շատ բլոգներ Apache Fink-ում