Նախորդ բլոգում մենք քննարկել ենք խմբաքանակի մշակումը 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-ում իրական ժամանակում մշակման մեջ առաջիկա բլոգում:
Հետևեք ինձ ավելի շատ նման բլոգների համար և ծափ տվեք, եթե ձեզ դուր է գալիս այս բլոգը:
— — — — — — — — Ինձ սուրճ գնիր — — — — — — — -