সমস্ত শিল্প জুড়ে সংস্থাগুলির বিভিন্ন বিশ্লেষণ সিস্টেম জুড়ে তাদের বিশ্লেষণাত্মক ব্যবহারের ক্ষেত্রে জটিল ডেটা প্রক্রিয়াকরণের প্রয়োজনীয়তা রয়েছে, যেমন AWS-এ ডেটা লেক, তথ্য গুদাম (আমাজন রেডশিফ্ট), অনুসন্ধান (আমাজন ওপেন সার্চ সার্ভিস, NoSQL (আমাজন ডায়নামোডিবি), মেশিন লার্নিং (আমাজন সেজমেকার), এবং আরো। বিশ্লেষণ পেশাদারদের তাদের গ্রাহকদের জন্য আরও ভাল, নিরাপদ, এবং খরচ-অনুকূলিত অভিজ্ঞতা তৈরি করতে এই বিতরণ করা সিস্টেমগুলিতে সঞ্চিত ডেটা থেকে মূল্য প্রাপ্ত করার দায়িত্ব দেওয়া হয়। উদাহরণস্বরূপ, ডিজিটাল মিডিয়া কোম্পানিগুলি তাদের গ্রাহক প্রোফাইলগুলির একীভূত দৃষ্টিভঙ্গি তৈরি করতে, উদ্ভাবনী বৈশিষ্ট্যগুলির জন্য ধারণাগুলিকে উত্সাহিত করতে এবং প্ল্যাটফর্মের ব্যস্ততা বাড়াতে অভ্যন্তরীণ এবং বাহ্যিক ডেটাবেসে ডেটাসেটগুলিকে একত্রিত করতে এবং প্রক্রিয়া করতে চায়।
এই পরিস্থিতিতে, গ্রাহকরা একটি সার্ভারহীন ডেটা ইন্টিগ্রেশন অফার ব্যবহারের জন্য খুঁজছেন এডাব্লুএস আঠালো তথ্য প্রক্রিয়াকরণ এবং তালিকাভুক্ত করার জন্য একটি মূল উপাদান হিসাবে। AWS Glue AWS পরিষেবা এবং অংশীদার পণ্যগুলির সাথে ভালভাবে সমন্বিত, এবং বিশ্লেষণ, মেশিন লার্নিং (ML), বা অ্যাপ্লিকেশন ডেভেলপমেন্ট ওয়ার্কফ্লো সক্ষম করতে লো-কোড/নো-কোড এক্সট্র্যাক্ট, ট্রান্সফর্ম এবং লোড (ETL) বিকল্প সরবরাহ করে। AWS Glue ETL কাজগুলি আরও জটিল পাইপলাইনের একটি উপাদান হতে পারে। এই উপাদানগুলির মধ্যে নির্ভরতা পরিচালনা এবং পরিচালনা করা একটি ডেটা কৌশলের মূল ক্ষমতা। Apache Airflows-এর জন্য Amazon পরিচালিত কর্মপ্রবাহ (Amazon MWAA) অন-প্রিমিসেস রিসোর্স, AWS পরিষেবা এবং থার্ড-পার্টি উপাদান সহ বিতরণ করা প্রযুক্তি ব্যবহার করে ডেটা পাইপলাইন অর্কেস্ট্রেট করে।
এই পোস্টে, আমরা অ্যামাজন MWAA-এর সর্বশেষ বৈশিষ্ট্যগুলি ব্যবহার করে এয়ারফ্লো দ্বারা সাজানো একটি AWS Glue কাজের নিরীক্ষণকে কীভাবে সহজ করা যায় তা দেখাই।
সমাধান ওভারভিউ
এই পোস্টে নিম্নলিখিত আলোচনা করা হয়েছে:
- কিভাবে একটি Amazon MWAA পরিবেশ 2.4.3 সংস্করণে আপগ্রেড করবেন।
- কিভাবে একটি এয়ারফ্লো থেকে একটি AWS আঠালো কাজ অর্কেস্ট্রেট করা যায় পরিচালিত অ্যাসাইক্লিক গ্রাফ (ডিএজি)।
- Amazon MWAA-এ Airflow Amazon প্রদানকারী প্যাকেজের পর্যবেক্ষণযোগ্যতা বৃদ্ধি। আপনি এখন এয়ারফ্লো কনসোলে AWS গ্লু জবগুলির রান লগগুলিকে একত্রিত করতে পারেন যাতে ডেটা পাইপলাইনগুলি সমস্যা সমাধান করা সহজ হয়৷ Amazon MWAA কনসোল AWS Glue জব রান নিরীক্ষণ এবং বিশ্লেষণ করার জন্য একটি একক রেফারেন্স হয়ে ওঠে। পূর্বে, সমর্থন দল অ্যাক্সেস করার প্রয়োজন এডাব্লুএস ম্যানেজমেন্ট কনসোল এবং এই দৃশ্যমানতার জন্য ম্যানুয়াল পদক্ষেপ নিন। এই বৈশিষ্ট্যটি অ্যামাজন MWAA সংস্করণ 2.4.3 থেকে ডিফল্টরূপে উপলব্ধ।
নিম্নলিখিত চিত্রটি আমাদের সমাধান আর্কিটেকচারের চিত্র তুলে ধরেছে।
পূর্বশর্ত
আপনার নিম্নলিখিত পূর্বশর্ত প্রয়োজন:
Amazon MWAA পরিবেশ সেট আপ করুন
আপনার পরিবেশ তৈরির নির্দেশাবলীর জন্য, পড়ুন একটি Amazon MWAA পরিবেশ তৈরি করুন. বিদ্যমান ব্যবহারকারীদের জন্য, আমরা এই পোস্টে বৈশিষ্ট্যযুক্ত পর্যবেক্ষণের উন্নতির সুবিধা নিতে 2.4.3 সংস্করণে আপগ্রেড করার সুপারিশ করছি।
বর্তমান সংস্করণ 2.4.3 বা 1.10.12 এর উপর নির্ভর করে Amazon MWAA সংস্করণ 2.2.2-তে আপগ্রেড করার পদক্ষেপগুলি আলাদা। আমরা এই পোস্টে উভয় বিকল্প আলোচনা.
একটি Amazon MWAA পরিবেশ স্থাপনের পূর্বশর্ত
আপনাকে অবশ্যই নিম্নলিখিত পূর্বশর্তগুলি পূরণ করতে হবে:
সংস্করণ 1.10.12 থেকে 2.4.3 এ আপগ্রেড করুন
আপনি যদি Amazon MWAA সংস্করণ ব্যবহার করেন 1.10.12, নির্দেশ করে একটি নতুন Amazon MWAA পরিবেশে স্থানান্তরিত হচ্ছে৷ 2.4.3 এ আপগ্রেড করতে।
সংস্করণ 2.0.2 বা 2.2.2 থেকে 2.4.3 এ আপগ্রেড করুন
আপনি যদি Amazon MWAA এনভায়রনমেন্ট সংস্করণ 2.2.2 বা তার কম ব্যবহার করেন, তাহলে নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন:
- একটা তৈরি কর কোনো কাস্টম নির্ভরতার জন্য requirements.txt আপনার DAG-এর জন্য প্রয়োজনীয় নির্দিষ্ট সংস্করণ সহ।
- Amazon S3 ফাইলটি আপলোড করুন উপযুক্ত স্থানে যেখানে Amazon MWAA পরিবেশ নির্ভরতা ইনস্টল করার জন্য requirements.txt নির্দেশ করে।
- ধাপগুলি অনুসরণ করুন একটি নতুন Amazon MWAA পরিবেশে স্থানান্তরিত হচ্ছে৷ এবং সংস্করণ 2.4.3 নির্বাচন করুন।
আপনার DAG আপডেট করুন
পুরানো Amazon MWAA পরিবেশ থেকে আপগ্রেড করা গ্রাহকদের বিদ্যমান DAGs-এ আপডেট করতে হতে পারে। এয়ারফ্লো সংস্করণ 2.4.3-এ, এয়ারফ্লো পরিবেশ ডিফল্টরূপে Amazon প্রদানকারী প্যাকেজ সংস্করণ 6.0.0 ব্যবহার করবে। এই প্যাকেজটিতে কিছু সম্ভাব্য ভঙ্গকারী পরিবর্তন অন্তর্ভুক্ত থাকতে পারে, যেমন অপারেটরের নাম পরিবর্তন। উদাহরণস্বরূপ, দ AWSGlueJobOperator অবচয় করা হয়েছে এবং এর সাথে প্রতিস্থাপিত হয়েছে গ্লুজব অপারেটর. সামঞ্জস্য বজায় রাখার জন্য, পূর্ববর্তী সংস্করণের যেকোন অবহেলিত বা অসমর্থিত অপারেটরকে নতুন দিয়ে প্রতিস্থাপন করে আপনার এয়ারফ্লো DAGs আপডেট করুন। নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
- নেভিগেট করুন আমাজন AWS অপারেটর.
- সমর্থিত এয়ারফ্লো অপারেটরগুলির একটি তালিকা খুঁজতে আপনার Amazon MWAA দৃষ্টান্তে (6.0.0. ডিফল্টরূপে) ইনস্টল করা উপযুক্ত সংস্করণ নির্বাচন করুন৷
- বিদ্যমান DAG কোডে প্রয়োজনীয় পরিবর্তন করুন এবং পরিবর্তিত ফাইলগুলি Amazon S3-এ DAG অবস্থানে আপলোড করুন।
এয়ারফ্লো থেকে AWS আঠালো কাজ অর্কেস্ট্রেট করুন
এই বিভাগে Airflow DAGs-এর মধ্যে AWS Glue কাজের অর্কেস্ট্রেট করার বিশদ বিবরণ রয়েছে। এয়ারফ্লো ভিন্ন ভিন্ন সিস্টেমের মধ্যে নির্ভরতা সহ ডেটা পাইপলাইনগুলির বিকাশকে সহজ করে যেমন অন-প্রিমিসেস প্রক্রিয়া, বাহ্যিক নির্ভরতা, অন্যান্য AWS পরিষেবা এবং আরও অনেক কিছু।
AWS Glue এবং Amazon MWAA এর সাথে অর্কেস্ট্রেট ক্লাউডট্রেইল লগ অ্যাগ্রিগেশন
এই উদাহরণে, আমরা একটি AWS Glue Python Shell কাজের অর্কেস্ট্রেট করার জন্য Amazon MWAA ব্যবহার করার একটি ব্যবহারের ক্ষেত্রে যা ক্লাউডট্রেল লগের উপর ভিত্তি করে সমষ্টিগত মেট্রিক্স বজায় রাখে।
CloudTrail আপনার AWS অ্যাকাউন্টে করা AWS API কলগুলিতে দৃশ্যমানতা সক্ষম করে৷ এই ডেটার সাথে একটি সাধারণ ব্যবহারের ক্ষেত্রে অডিটিং এবং নিয়ন্ত্রক প্রয়োজনের জন্য আপনার অ্যাকাউন্টের সংস্থানগুলির উপর কাজ করে এমন প্রধানদের ব্যবহারের মেট্রিক্স সংগ্রহ করা হবে।
যেহেতু CloudTrail ইভেন্টগুলি লগ করা হচ্ছে, সেগুলি Amazon S3-এ JSON ফাইল হিসাবে বিতরণ করা হয়েছে, যা বিশ্লেষণাত্মক প্রশ্নের জন্য আদর্শ নয়৷ আমরা এই ডেটা একত্রিত করতে চাই এবং সর্বোত্তম ক্যোয়ারী পারফরম্যান্সের জন্য এটিকে Parquet ফাইল হিসাবে চালিয়ে যেতে চাই। একটি প্রাথমিক পদক্ষেপ হিসাবে, আমরা আমাদের AWS Glue কাজের অতিরিক্ত একত্রীকরণ করার আগে ডেটার প্রাথমিক অনুসন্ধানের জন্য Athena ব্যবহার করতে পারি। একটি AWS আঠালো ডেটা ক্যাটালগ টেবিল তৈরি সম্পর্কে আরও তথ্যের জন্য, পড়ুন পার্টিশন প্রজেকশন ব্যবহার করে এথেনায় ক্লাউডট্রেল লগের জন্য টেবিল তৈরি করা তথ্য আমরা Athena এর মাধ্যমে ডেটা অন্বেষণ করার পরে এবং সিদ্ধান্ত নেওয়ার পরে যে আমরা সামগ্রিক টেবিলে কোন মেট্রিকগুলি ধরে রাখতে চাই, আমরা একটি AWS Glue কাজ তৈরি করতে পারি।
এথেনায় একটি CloudTrail টেবিল তৈরি করুন
প্রথমত, আমাদের ডেটা ক্যাটালগে একটি টেবিল তৈরি করতে হবে যা ক্লাউডট্রেইল ডেটা অ্যাথেনার মাধ্যমে জিজ্ঞাসা করতে দেয়৷ নিম্নলিখিত নমুনা ক্যোয়ারী অঞ্চল এবং তারিখে দুটি পার্টিশন সহ একটি টেবিল তৈরি করে (যাকে snapshot_date বলা হয়)। আপনার CloudTrail বাকেট, AWS অ্যাকাউন্ট আইডি, এবং CloudTrail টেবিল নামের জন্য স্থানধারকগুলি প্রতিস্থাপন করতে ভুলবেন না:
create external table if not exists `<<<CLOUDTRAIL_TABLE_NAME>>>`( `eventversion` string comment 'from deserializer', `useridentity` struct<type:string,principalid:string,arn:string,accountid:string,invokedby:string,accesskeyid:string,username:string,sessioncontext:struct<attributes:struct<mfaauthenticated:string,creationdate:string>,sessionissuer:struct<type:string,principalid:string,arn:string,accountid:string,username:string>>> comment 'from deserializer', `eventtime` string comment 'from deserializer', `eventsource` string comment 'from deserializer', `eventname` string comment 'from deserializer', `awsregion` string comment 'from deserializer', `sourceipaddress` string comment 'from deserializer', `useragent` string comment 'from deserializer', `errorcode` string comment 'from deserializer', `errormessage` string comment 'from deserializer', `requestparameters` string comment 'from deserializer', `responseelements` string comment 'from deserializer', `additionaleventdata` string comment 'from deserializer', `requestid` string comment 'from deserializer', `eventid` string comment 'from deserializer', `resources` array<struct<arn:string,accountid:string,type:string>> comment 'from deserializer', `eventtype` string comment 'from deserializer', `apiversion` string comment 'from deserializer', `readonly` string comment 'from deserializer', `recipientaccountid` string comment 'from deserializer', `serviceeventdetails` string comment 'from deserializer', `sharedeventid` string comment 'from deserializer', `vpcendpointid` string comment 'from deserializer')
PARTITIONED BY ( `region` string, `snapshot_date` string)
ROW FORMAT SERDE 'com.amazon.emr.hive.serde.CloudTrailSerde' STORED AS INPUTFORMAT 'com.amazon.emr.cloudtrail.CloudTrailInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION 's3://<<<CLOUDTRAIL_BUCKET>>>/AWSLogs/<<<ACCOUNT_ID>>>/CloudTrail/'
TBLPROPERTIES ( 'projection.enabled'='true', 'projection.region.type'='enum', 'projection.region.values'='us-east-2,us-east-1,us-west-1,us-west-2,af-south-1,ap-east-1,ap-south-1,ap-northeast-3,ap-northeast-2,ap-southeast-1,ap-southeast-2,ap-northeast-1,ca-central-1,eu-central-1,eu-west-1,eu-west-2,eu-south-1,eu-west-3,eu-north-1,me-south-1,sa-east-1', 'projection.snapshot_date.format'='yyyy/mm/dd', 'projection.snapshot_date.interval'='1', 'projection.snapshot_date.interval.unit'='days', 'projection.snapshot_date.range'='2020/10/01,now', 'projection.snapshot_date.type'='date', 'storage.location.template'='s3://<<<CLOUDTRAIL_BUCKET>>>/AWSLogs/<<<ACCOUNT_ID>>>/CloudTrail/${region}/${snapshot_date}')
অ্যাথেনা কনসোলে পূর্ববর্তী ক্যোয়ারীটি চালান, এবং টেবিলের নাম এবং AWS Glue Data Catalog ডাটাবেস যেখানে এটি তৈরি করা হয়েছিল তা নোট করুন। আমরা পরে এয়ারফ্লো ডিএজি কোডে এই মানগুলি ব্যবহার করি।
নমুনা AWS আঠালো কাজের কোড
নিম্নলিখিত কোড একটি নমুনা AWS গ্লু পাইথন শেল কাজ এটি নিম্নলিখিত কাজ করে:
- কোন দিনের ডেটা প্রক্রিয়া করতে হবে সে বিষয়ে আর্গুমেন্ট নেয় (যা আমরা আমাদের Amazon MWAA DAG থেকে পাস করি)
- ব্যবহার করে পান্ডাদের জন্য AWS SDK AWS Glue-এর বাইরে CloudTrail JSON ডেটার প্রাথমিক ফিল্টারিং করতে একটি Athena কোয়েরি চালানোর জন্য
- ফিল্টার করা ডেটাতে সাধারণ একত্রীকরণ করতে পান্ডা ব্যবহার করে
- একটি টেবিলে AWS আঠালো ডেটা ক্যাটালগে সমষ্টিগত ডেটা আউটপুট করে
- প্রক্রিয়াকরণের সময় লগিং ব্যবহার করে, যা Amazon MWAA-তে দৃশ্যমান হবে
import awswrangler as wr
import pandas as pd
import sys
import logging
from awsglue.utils import getResolvedOptions
from datetime import datetime, timedelta # Logging setup, redirects all logs to stdout
LOGGER = logging.getLogger()
formatter = logging.Formatter('%(asctime)s.%(msecs)03d %(levelname)s %(module)s - %(funcName)s: %(message)s')
streamHandler = logging.StreamHandler(sys.stdout)
streamHandler.setFormatter(formatter)
LOGGER.addHandler(streamHandler)
LOGGER.setLevel(logging.INFO) LOGGER.info(f"Passed Args :: {sys.argv}") sql_query_template = """
select
region,
useridentity.arn,
eventsource,
eventname,
useragent from "{cloudtrail_glue_db}"."{cloudtrail_table}"
where snapshot_date='{process_date}'
and region in ('us-east-1','us-east-2') """ required_args = ['CLOUDTRAIL_GLUE_DB', 'CLOUDTRAIL_TABLE', 'TARGET_BUCKET', 'TARGET_DB', 'TARGET_TABLE', 'ACCOUNT_ID']
arg_keys = [*required_args, 'PROCESS_DATE'] if '--PROCESS_DATE' in sys.argv else required_args
JOB_ARGS = getResolvedOptions ( sys.argv, arg_keys) LOGGER.info(f"Parsed Args :: {JOB_ARGS}") # if process date was not passed as an argument, process yesterday's data
process_date = ( JOB_ARGS['PROCESS_DATE'] if JOB_ARGS.get('PROCESS_DATE','NONE') != "NONE" else (datetime.today() - timedelta(days=1)).strftime("%Y-%m-%d") ) LOGGER.info(f"Taking snapshot for :: {process_date}") RAW_CLOUDTRAIL_DB = JOB_ARGS['CLOUDTRAIL_GLUE_DB']
RAW_CLOUDTRAIL_TABLE = JOB_ARGS['CLOUDTRAIL_TABLE']
TARGET_BUCKET = JOB_ARGS['TARGET_BUCKET']
TARGET_DB = JOB_ARGS['TARGET_DB']
TARGET_TABLE = JOB_ARGS['TARGET_TABLE']
ACCOUNT_ID = JOB_ARGS['ACCOUNT_ID'] final_query = sql_query_template.format( process_date=process_date.replace("-","/"), cloudtrail_glue_db=RAW_CLOUDTRAIL_DB, cloudtrail_table=RAW_CLOUDTRAIL_TABLE
) LOGGER.info(f"Running Query :: {final_query}") raw_cloudtrail_df = wr.athena.read_sql_query( sql=final_query, database=RAW_CLOUDTRAIL_DB, ctas_approach=False, s3_output=f"s3://{TARGET_BUCKET}/athena-results",
) raw_cloudtrail_df['ct']=1 agg_df = raw_cloudtrail_df.groupby(['arn','region','eventsource','eventname','useragent'],as_index=False).agg({'ct':'sum'})
agg_df['snapshot_date']=process_date LOGGER.info(agg_df.info(verbose=True)) upload_path = f"s3://{TARGET_BUCKET}/{TARGET_DB}/{TARGET_TABLE}" if not agg_df.empty: LOGGER.info(f"Upload to {upload_path}") try: response = wr.s3.to_parquet( df=agg_df, path=upload_path, dataset=True, database=TARGET_DB, table=TARGET_TABLE, mode="overwrite_partitions", schema_evolution=True, partition_cols=["snapshot_date"], compression="snappy", index=False ) LOGGER.info(response) except Exception as exc: LOGGER.error("Uploading to S3 failed") LOGGER.exception(exc) raise exc
else: LOGGER.info(f"Dataframe was empty, nothing to upload to {upload_path}")
এই AWS Glue কাজের কিছু মূল সুবিধা নিচে দেওয়া হল:
- প্রাথমিক ফিল্টারিং আমাদের AWS Glue কাজের বাইরে সম্পন্ন হয়েছে তা নিশ্চিত করতে আমরা একটি Athena কোয়েরি ব্যবহার করি। যেমন, ন্যূনতম কম্পিউট সহ একটি পাইথন শেল কাজ এখনও একটি বড় ক্লাউডট্রেল ডেটাসেট একত্রিত করার জন্য যথেষ্ট।
- আমরা নিশ্চিত করি বিশ্লেষণ লাইব্রেরি-সেট বিকল্প পান্ডাস লাইব্রেরির জন্য AWS SDK ব্যবহার করার জন্য আমাদের AWS Glue কাজ তৈরি করার সময় চালু করা হয়।
একটি AWS আঠালো কাজ তৈরি করুন
আপনার AWS আঠালো কাজ তৈরি করতে নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
- পূর্ববর্তী বিভাগে স্ক্রিপ্টটি অনুলিপি করুন এবং একটি স্থানীয় ফাইলে সংরক্ষণ করুন। এই পোস্টের জন্য, ফাইল বলা হয়
script.py
. - এডাব্লুএস আঠালো কনসোলে, নির্বাচন করুন ETL চাকরি নেভিগেশন ফলকে।
- একটি নতুন চাকরি তৈরি করুন এবং নির্বাচন করুন পাইথন শেল স্ক্রিপ্ট সম্পাদক.
- নির্বাচন করা একটি বিদ্যমান স্ক্রিপ্ট আপলোড এবং সম্পাদনা করুন এবং স্থানীয়ভাবে আপনার সংরক্ষণ করা ফাইল আপলোড করুন।
- বেছে নিন সৃষ্টি.
- উপরে চাকরির বিস্তারিত ট্যাবে, আপনার AWS Glue কাজের জন্য একটি নাম লিখুন।
- জন্য আইএএম ভূমিকা, একটি বিদ্যমান ভূমিকা চয়ন করুন বা একটি নতুন ভূমিকা তৈরি করুন যাতে Amazon S3, AWS Glue, এবং Athena-এর জন্য প্রয়োজনীয় অনুমতি রয়েছে৷ ভূমিকাটির জন্য আপনার আগে তৈরি করা CloudTrail টেবিলটি জিজ্ঞাসা করতে হবে এবং একটি আউটপুট অবস্থানে লিখতে হবে।
আপনি নিম্নলিখিত নমুনা নীতি কোড ব্যবহার করতে পারেন. আপনার CloudTrail লগ বালতি, আউটপুট টেবিলের নাম, আউটপুট AWS আঠালো ডাটাবেস, আউটপুট S3 বালতি, CloudTrail টেবিলের নাম, CloudTrail টেবিল ধারণকারী AWS Glue ডাটাবেস এবং আপনার AWS অ্যাকাউন্ট আইডি দিয়ে স্থানধারকগুলি প্রতিস্থাপন করুন।
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:List*", "s3:Get*" ], "Resource": [ "arn:aws:s3:::<<<CLOUDTRAIL_LOGS_BUCKET>>>/*", "arn:aws:s3:::<<<CLOUDTRAIL_LOGS_BUCKET>>>*" ], "Effect": "Allow", "Sid": "GetS3CloudtrailData" }, { "Action": [ "glue:Get*", "glue:BatchGet*" ], "Resource": [ "arn:aws:glue:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:catalog", "arn:aws:glue:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:database/<<<GLUE_DB_WITH_CLOUDTRAIL_TABLE>>>", "arn:aws:glue:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:table/<<<GLUE_DB_WITH_CLOUDTRAIL_TABLE>>>/<<<CLOUDTRAIL_TABLE>>>*" ], "Effect": "Allow", "Sid": "GetGlueCatalogCloudtrailData" }, { "Action": [ "s3:PutObject*", "s3:Abort*", "s3:DeleteObject*", "s3:GetObject*", "s3:GetBucket*", "s3:List*", "s3:Head*" ], "Resource": [ "arn:aws:s3:::<<<OUTPUT_S3_BUCKET>>>", "arn:aws:s3:::<<<OUTPUT_S3_BUCKET>>>/<<<OUTPUT_GLUE_DB>>>/<<<OUTPUT_TABLE_NAME>>>/*" ], "Effect": "Allow", "Sid": "WriteOutputToS3" }, { "Action": [ "glue:CreateTable", "glue:CreatePartition", "glue:UpdatePartition", "glue:UpdateTable", "glue:DeleteTable", "glue:DeletePartition", "glue:BatchCreatePartition", "glue:BatchDeletePartition", "glue:Get*", "glue:BatchGet*" ], "Resource": [ "arn:aws:glue:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:catalog", "arn:aws:glue:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:database/<<<OUTPUT_GLUE_DB>>>", "arn:aws:glue:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:table/<<<OUTPUT_GLUE_DB>>>/<<<OUTPUT_TABLE_NAME>>>*" ], "Effect": "Allow", "Sid": "AllowOutputToGlue" }, { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:/aws-glue/*", "Effect": "Allow", "Sid": "LogsAccess" }, { "Action": [ "s3:GetObject*", "s3:GetBucket*", "s3:List*", "s3:DeleteObject*", "s3:PutObject", "s3:PutObjectLegalHold", "s3:PutObjectRetention", "s3:PutObjectTagging", "s3:PutObjectVersionTagging", "s3:Abort*" ], "Resource": [ "arn:aws:s3:::<<<ATHENA_RESULTS_BUCKET>>>", "arn:aws:s3:::<<<ATHENA_RESULTS_BUCKET>>>/*" ], "Effect": "Allow", "Sid": "AccessToAthenaResults" }, { "Action": [ "athena:StartQueryExecution", "athena:StopQueryExecution", "athena:GetDataCatalog", "athena:GetQueryResults", "athena:GetQueryExecution" ], "Resource": [ "arn:aws:glue:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:catalog", "arn:aws:athena:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:datacatalog/AwsDataCatalog", "arn:aws:athena:us-east-1:<<<YOUR_AWS_ACCT_ID>>>:workgroup/primary" ], "Effect": "Allow", "Sid": "AllowAthenaQuerying" } ]
}
জন্য পাইথন সংস্করণনির্বাচন পাইথন 3.9.
- নির্বাচন করা সাধারণ বিশ্লেষণ লাইব্রেরি লোড করুন.
- জন্য ডেটা প্রসেসিং ইউনিটনির্বাচন 1টি ডিপিইউ.
- অন্যান্য বিকল্পগুলিকে ডিফল্ট হিসাবে ছেড়ে দিন বা প্রয়োজন অনুসারে সামঞ্জস্য করুন।
- বেছে নিন সংরক্ষণ করুন আপনার কাজের কনফিগারেশন সংরক্ষণ করতে।
AWS Glue কাজের অর্কেস্ট্রেট করতে একটি Amazon MWAA DAG কনফিগার করুন
নিম্নলিখিত কোডটি একটি DAG-এর জন্য যা আমরা তৈরি করা AWS Glue কাজকে সাজাতে পারে৷ আমরা এই DAG-তে নিম্নলিখিত মূল বৈশিষ্ট্যগুলির সুবিধা গ্রহণ করি:
"""Sample DAG"""
import airflow.utils
from airflow.providers.amazon.aws.operators.glue import GlueJobOperator
from airflow import DAG
from datetime import timedelta
import airflow.utils # allow backfills via DAG run parameters
process_date = '{{ dag_run.conf.get("process_date") if dag_run.conf.get("process_date") else "NONE" }}' dag = DAG( dag_id = "CLOUDTRAIL_LOGS_PROCESSING", default_args = { 'depends_on_past':False, 'start_date':airflow.utils.dates.days_ago(0), 'retries':1, 'retry_delay':timedelta(minutes=5), 'catchup': False }, schedule_interval = None, # None for unscheduled or a cron expression - E.G. "00 12 * * 2" - at 12noon Tuesday dagrun_timeout = timedelta(minutes=30), max_active_runs = 1, max_active_tasks = 1 # since there is only one task in our DAG
) ## Log ingest. Assumes Glue Job is already created
glue_ingestion_job = GlueJobOperator( task_id="<<<some-task-id>>>", job_name="<<<GLUE_JOB_NAME>>>", script_args={ "--ACCOUNT_ID":"<<<YOUR_AWS_ACCT_ID>>>", "--CLOUDTRAIL_GLUE_DB":"<<<GLUE_DB_WITH_CLOUDTRAIL_TABLE>>>", "--CLOUDTRAIL_TABLE":"<<<CLOUDTRAIL_TABLE>>>", "--TARGET_BUCKET": "<<<OUTPUT_S3_BUCKET>>>", "--TARGET_DB": "<<<OUTPUT_GLUE_DB>>>", # should already exist "--TARGET_TABLE": "<<<OUTPUT_TABLE_NAME>>>", "--PROCESS_DATE": process_date }, region_name="us-east-1", dag=dag, verbose=True
) glue_ingestion_job
Amazon MWAA-এ AWS Glue কাজগুলির পর্যবেক্ষণযোগ্যতা বৃদ্ধি করুন
AWS আঠালো কাজ লগ লিখতে অ্যামাজন ক্লাউডওয়াচ. Airflow এর Amazon প্রদানকারী প্যাকেজে সাম্প্রতিক পর্যবেক্ষণযোগ্যতা বৃদ্ধির সাথে, এই লগগুলি এখন Airflow টাস্ক লগের সাথে একত্রিত হয়েছে৷ এই একত্রীকরণ এয়ারফ্লো ব্যবহারকারীদের সরাসরি এয়ারফ্লো UI-তে এন্ড-টু-এন্ড দৃশ্যমানতা প্রদান করে, যা CloudWatch বা AWS Glue কনসোলে অনুসন্ধানের প্রয়োজনীয়তা দূর করে।
এই বৈশিষ্ট্যটি ব্যবহার করতে, নিশ্চিত করুন যে Amazon MWAA পরিবেশের সাথে সংযুক্ত IAM ভূমিকাতে প্রয়োজনীয় লগগুলি পুনরুদ্ধার এবং লেখার জন্য নিম্নলিখিত অনুমতি রয়েছে:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:GetLogEvents", "logs:GetLogRecord", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogGroupFields", "logs:GetQueryResults", ], "Resource": [ "arn:aws:logs:*:*:log-group:airflow-243-<<<Your environment name>>>-*"--Your Amazon MWAA Log Stream Name ] } ]
}
যদি verbose=true হয়, AWS Glue জব রান লগগুলি Airflow টাস্ক লগগুলিতে দেখায়। ডিফল্ট মিথ্যা. আরো তথ্যের জন্য, পড়ুন পরামিতি.
সক্রিয় করা হলে, DAGs AWS Glue কাজের CloudWatch লগ স্ট্রীম থেকে পড়ে এবং এয়ারফ্লো DAG AWS Glue কাজের ধাপ লগগুলিতে রিলে করে। এটি DAG লগের মাধ্যমে রিয়েল টাইমে একটি AWS Glue কাজ চালানোর বিস্তারিত অন্তর্দৃষ্টি প্রদান করে। মনে রাখবেন যে AWS Glue কাজগুলি যথাক্রমে কাজের STDOUT এবং STDERR-এর উপর ভিত্তি করে একটি আউটপুট এবং ত্রুটি ক্লাউডওয়াচ লগ গ্রুপ তৈরি করে। আউটপুট লগ গ্রুপের সমস্ত লগ এবং ত্রুটি লগ গ্রুপ থেকে ব্যতিক্রম বা ত্রুটি লগগুলি Amazon MWAA-তে রিলে করা হয়৷
AWS অ্যাডমিনরা এখন শুধুমাত্র এয়ারফ্লোতে একটি সাপোর্ট টিমের অ্যাক্সেস সীমিত করতে পারে, যা Amazon MWAA কে কাজের অর্কেস্ট্রেশন এবং চাকরির স্বাস্থ্য ব্যবস্থাপনায় কাচের একক ফলক করে তোলে। পূর্বে, ব্যবহারকারীদের এয়ারফ্লো DAG ধাপে AWS Glue জব রান স্ট্যাটাস চেক করতে হবে এবং জব রান আইডেন্টিফায়ার পুনরুদ্ধার করতে হবে। তারপরে তাদের কাজের রানের ইতিহাস খুঁজে পেতে AWS গ্লু কনসোল অ্যাক্সেস করতে হবে, শনাক্তকারী ব্যবহার করে আগ্রহের কাজটি অনুসন্ধান করতে হবে এবং অবশেষে সমস্যা সমাধানের জন্য কাজের ক্লাউডওয়াচ লগগুলিতে নেভিগেট করতে হবে।
DAG তৈরি করুন
DAG তৈরি করতে, নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন:
- পূর্ববর্তী DAG কোড একটি স্থানীয় .py ফাইলে সংরক্ষণ করুন, নির্দেশিত স্থানধারক প্রতিস্থাপন করুন।
আপনার AWS অ্যাকাউন্ট আইডি, AWS Glue কাজের নাম, CloudTrail টেবিল সহ AWS Glue ডাটাবেস এবং CloudTrail টেবিলের নামের মানগুলি ইতিমধ্যেই জানা উচিত৷ আপনি প্রয়োজন অনুসারে আউটপুট S3 বালতি, আউটপুট AWS Glue ডাটাবেস এবং আউটপুট টেবিলের নাম সামঞ্জস্য করতে পারেন, তবে নিশ্চিত করুন যে আপনি আগে ব্যবহার করেছেন AWS Glue কাজের IAM ভূমিকা সেই অনুযায়ী কনফিগার করা হয়েছে।
- Amazon MWAA কনসোলে, DAG কোড কোথায় সংরক্ষিত আছে তা দেখতে আপনার পরিবেশে নেভিগেট করুন।
DAGs ফোল্ডার হল S3 বাকেটের মধ্যে একটি উপসর্গ যেখানে আপনার DAG ফাইল স্থাপন করা উচিত।
- সেখানে আপনার সম্পাদিত ফাইল আপলোড করুন।
- টেবিলে DAG উপস্থিত হয়েছে তা নিশ্চিত করতে Amazon MWAA কনসোল খুলুন।
DAG চালান
DAG চালানোর জন্য, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:
- নিম্নলিখিত বিকল্প থেকে চয়ন করুন:
- ট্রিগার DAG - এর ফলে গতকালের ডেটা প্রক্রিয়া করার জন্য ডেটা হিসাবে ব্যবহার করা হয়
- ট্রিগার DAG w/ কনফিগারেশন - এই বিকল্পের সাহায্যে, আপনি একটি ভিন্ন তারিখে পাস করতে পারেন, সম্ভাব্য ব্যাকফিলের জন্য, যা ব্যবহার করে পুনরুদ্ধার করা হয়
dag_run.conf
DAG কোডে এবং তারপর একটি প্যারামিটার হিসাবে AWS Glue কাজের মধ্যে পাস করে
নিম্নলিখিত স্ক্রিনশটটি অতিরিক্ত কনফিগারেশন বিকল্পগুলি দেখায় যদি আপনি চয়ন করেন ট্রিগার DAG w/ কনফিগারেশন.
- এটি চালানোর সাথে সাথে ডিএজি মনিটর করুন।
- DAG সম্পূর্ণ হলে, রানের বিবরণ খুলুন।
ডান ফলকে, আপনি লগ দেখতে পারেন, বা চয়ন করতে পারেন টাস্ক ইনস্ট্যান্স বিবরণ সম্পূর্ণ দেখার জন্য।
- AWS Glue কনসোল ব্যবহার না করে Amazon MWAA-তে AWS Glue কাজের আউটপুট লগগুলি দেখুন
GlueJobOperator
ভার্বোস পতাকা।
AWS Glue কাজের আপনার নির্দিষ্ট করা আউটপুট টেবিলে লিখিত ফলাফল থাকবে।
- এটি সফল হয়েছে তা নিশ্চিত করতে এথেনার মাধ্যমে এই টেবিলটি অনুসন্ধান করুন৷
সারাংশ
Amazon MWAA এখন AWS Glue কাজের স্থিতি ট্র্যাক করার জন্য একটি একক জায়গা প্রদান করে এবং আপনাকে চাকরির অর্কেস্ট্রেশন এবং স্বাস্থ্য ব্যবস্থাপনার জন্য কাচের একক ফলক হিসাবে Airflow কনসোল ব্যবহার করতে সক্ষম করে৷ এই পোস্টে, আমরা এয়ারফ্লো ব্যবহার করে AWS Glue কাজগুলি অর্কেস্ট্রেট করার ধাপগুলি দিয়ে হেঁটেছি GlueJobOperator
. নতুন পর্যবেক্ষণযোগ্যতা বর্ধিতকরণের সাথে, আপনি একটি একীভূত অভিজ্ঞতায় AWS Glue কাজগুলি নির্বিঘ্নে সমাধান করতে পারেন। আমরা আপনার Amazon MWAA পরিবেশকে একটি সামঞ্জস্যপূর্ণ সংস্করণে আপগ্রেড করতে, নির্ভরতা আপডেট করতে এবং সেই অনুযায়ী IAM ভূমিকা নীতি পরিবর্তন করতে কীভাবে তা প্রদর্শন করেছি।
সাধারণ সমস্যা সমাধানের পদক্ষেপ সম্পর্কে আরও তথ্যের জন্য, পড়ুন সমস্যা সমাধান: একটি Amazon MWAA পরিবেশ তৈরি এবং আপডেট করা. একটি Amazon MWAA পরিবেশে স্থানান্তরিত করার গভীর বিবরণের জন্য, পড়ুন 1.10 থেকে 2 এ আপগ্রেড করা হচ্ছে. Airflow Amazon প্রদানকারী প্যাকেজে AWS Glue কাজের বর্ধিত পর্যবেক্ষণের জন্য ওপেন-সোর্স কোড পরিবর্তনগুলি সম্পর্কে জানতে, দেখুন AWS আঠালো কাজ থেকে রিলে লগ.
অবশেষে, আমরা পরিদর্শন সুপারিশ AWS বিগ ডেটা ব্লগ AWS-এ বিশ্লেষণ, ML, এবং ডেটা গভর্নেন্সের অন্যান্য উপাদানের জন্য।
লেখক সম্পর্কে
রুশভ লোখান্ডে AWS পেশাদার পরিষেবা বিশ্লেষণ অনুশীলন সহ একজন ডেটা এবং এমএল প্রকৌশলী৷ তিনি গ্রাহকদের বিগ ডেটা, মেশিন লার্নিং এবং অ্যানালিটিক্স সলিউশন বাস্তবায়নে সাহায্য করেন। কাজের বাইরে, তিনি পরিবারের সাথে সময় কাটানো, পড়া, দৌড়ানো এবং গল্ফ উপভোগ করেন।
রায়ান গোমস AWS পেশাদার পরিষেবা বিশ্লেষণ অনুশীলন সহ একজন ডেটা এবং এমএল প্রকৌশলী৷ তিনি ক্লাউডে বিশ্লেষণ এবং মেশিন লার্নিং সমাধানের মাধ্যমে গ্রাহকদের আরও ভাল ফলাফল অর্জনে সহায়তা করার বিষয়ে উত্সাহী। কাজের বাইরে, তিনি ফিটনেস উপভোগ করেন, রান্না করেন এবং বন্ধু এবং পরিবারের সাথে মানসম্পন্ন সময় কাটান।
বিশ্ব গুপ্তা AWS পেশাদার পরিষেবা বিশ্লেষণ অনুশীলন সহ একজন সিনিয়র ডেটা আর্কিটেক্ট। তিনি গ্রাহকদের বড় ডেটা এবং বিশ্লেষণ সমাধান বাস্তবায়নে সহায়তা করেন। কাজের বাইরে, তিনি পরিবারের সাথে সময় কাটাতে, ভ্রমণ করতে এবং নতুন খাবার চেষ্টা করতে উপভোগ করেন।
- এসইও চালিত বিষয়বস্তু এবং পিআর বিতরণ। আজই পরিবর্ধিত পান।
- প্লেটোএআইস্ট্রিম। Web3 ডেটা ইন্টেলিজেন্স। জ্ঞান প্রসারিত. এখানে প্রবেশ করুন.
- অ্যাড্রিয়েন অ্যাশলির সাথে ভবিষ্যত মিন্টিং। এখানে প্রবেশ করুন.
- PREIPO® এর সাথে PRE-IPO কোম্পানিতে শেয়ার কিনুন এবং বিক্রি করুন। এখানে প্রবেশ করুন.
- উত্স: https://aws.amazon.com/blogs/big-data/simplify-aws-glue-job-orchestration-and-monitoring-with-amazon-mwaa/
- : আছে
- : হয়
- :না
- :কোথায়
- $ ইউপি
- 1
- 10
- 100
- 12
- 8
- a
- সম্পর্কে
- প্রবেশ
- তদনুসারে
- হিসাব
- অর্জন করা
- দিয়ে
- কর্ম
- অ্যাসাইক্লিক
- অতিরিক্ত
- সুবিধা
- সুবিধাদি
- পর
- মোট পরিমাণ
- সব
- অনুমতি
- অনুমতি
- ইতিমধ্যে
- এছাড়াও
- মর্দানী স্ত্রীলোক
- অ্যামাজন ওয়েব সার্ভিসেস
- an
- বিশ্লেষণাত্মক
- বৈশ্লেষিক ন্যায়
- বিশ্লেষণ করা
- এবং
- কোন
- এ্যাপাচি
- API
- আবেদন
- অ্যাপ্লিকেশন ডেভেলপমেন্ট
- যথাযথ
- স্থাপত্য
- রয়েছি
- যুক্তি
- আর্গুমেন্ট
- AS
- At
- বৈশিষ্ট্যাবলী
- নিরীক্ষণ
- সহজলভ্য
- ডেস্কটপ AWS
- এডাব্লুএস আঠালো
- AWS প্রফেশনাল সার্ভিসেস
- ভিত্তি
- BE
- হয়ে
- হয়েছে
- আগে
- হচ্ছে
- উত্তম
- মধ্যে
- বিশাল
- বড় ডেটা
- উভয়
- ব্রেকিং
- নির্মাণ করা
- কিন্তু
- by
- নামক
- কল
- CAN
- কেস
- মামলা
- তালিকা
- কারণসমূহ
- পরিবর্তন
- পরিবর্তন
- চেক
- বেছে নিন
- মেঘ
- কোড
- এর COM
- মেশা
- মন্তব্য
- সাধারণ
- কোম্পানি
- সঙ্গতি
- উপযুক্ত
- সম্পূর্ণ
- জটিল
- উপাদান
- উপাদান
- গনা
- কনফিগারেশন
- নিশ্চিত করা
- কনসোল
- দৃঢ় করা
- একত্রীকরণের
- রান্না
- মূল
- কভার
- সৃষ্টি
- নির্মিত
- সৃষ্টি
- তৈরি করা হচ্ছে
- বর্তমান
- প্রথা
- ক্রেতা
- গ্রাহকদের
- DAG
- উপাত্ত
- বিভিন্ন উপাদানের মিশ্রনের তথ্য
- তথ্য প্রক্রিয়াজাতকরণ
- তথ্য কৌশল
- তথ্য গুদাম
- ডেটাবেস
- ডাটাবেস
- ডেটাসেট
- তারিখ
- তারিখগুলি
- DATETIME
- দিন
- সিদ্ধান্ত নিয়েছে
- ডিফল্ট
- নিষ্কৃত
- প্রদর্শিত
- নির্ভর করে
- অবচিত
- বিশদ
- বিস্তারিত
- উন্নয়ন
- ভিন্ন
- বিভিন্ন
- ডিজিটাল
- আধুনিক মাধ্যম
- সরাসরি
- আলোচনা করা
- বণ্টিত
- বিতরণ সিস্টেম
- do
- না
- করছেন
- সম্পন্ন
- সময়
- e
- পূর্বে
- হওয়া সত্ত্বেও
- প্রভাব
- দূর
- আর
- সক্ষম করা
- সক্ষম করা
- সম্ভব
- সর্বশেষ সীমা
- প্রবৃত্তি
- প্রকৌশলী
- উন্নত বৈশিষ্ট্য
- নিশ্চিত করা
- প্রবেশ করান
- পরিবেশ
- ভুল
- থার (eth)
- ঘটনাবলী
- উদাহরণ
- ছাড়া
- ব্যতিক্রম
- থাকা
- বিদ্যমান
- বিদ্যমান
- অভিজ্ঞতা
- অভিজ্ঞতা
- অন্বেষণ করা
- অভিব্যক্তি
- বহিরাগত
- নির্যাস
- ব্যর্থ
- মিথ্যা
- পরিবার
- বৈশিষ্ট্য
- সুগঠনবিশিষ্ট
- বৈশিষ্ট্য
- ফাইল
- নথি পত্র
- ফিল্টারিং
- পরিশেষে
- আবিষ্কার
- জুত
- অনুসরণ
- খাদ্য
- জন্য
- বিন্যাস
- বন্ধুদের
- থেকে
- সম্পূর্ণ
- সংগ্রহ করা
- উত্পাদন করা
- কাচ
- Go
- গলফ
- শাসন
- গ্রুপ
- Hadoop
- আছে
- he
- স্বাস্থ্য
- সাহায্য
- সাহায্য
- ইতিহাস
- মধুচক্র
- কিভাবে
- কিভাবে
- এইচটিএমএল
- HTTP
- HTTPS দ্বারা
- আমি
- ID
- আদর্শ
- ধারনা
- আইডেন্টিফায়ার
- if
- প্রকাশ
- বাস্তবায়ন
- আমদানি
- in
- গভীর
- অন্তর্ভুক্ত করা
- সুদ্ধ
- বৃদ্ধি
- বর্ধিত
- জ্ঞাপিত
- শিল্প
- তথ্য
- তথ্য
- প্রারম্ভিক
- উদ্ভাবনী
- অর্ন্তদৃষ্টি
- ইনস্টল করার
- উদাহরণ
- নির্দেশাবলী
- সংহত
- ইন্টিগ্রেশন
- স্বার্থ
- অভ্যন্তরীণ
- মধ্যে
- IT
- কাজ
- জবস
- JPG
- JSON
- চাবি
- পরিচিত
- বড়
- পরে
- সর্বশেষ
- শিখতে
- শিক্ষা
- লাইব্রেরি
- LIMIT টি
- তালিকা
- বোঝা
- স্থানীয়
- স্থানীয়ভাবে
- অবস্থান
- লগ ইন করুন
- লগ
- লগিং
- খুঁজছি
- মেশিন
- মেশিন লার্নিং
- প্রণীত
- বজায় রাখা
- করা
- মেকিং
- পরিচালিত
- ব্যবস্থাপনা
- পরিচালক
- ম্যানুয়াল
- উপাদান
- মে..
- মিডিয়া
- সম্মেলন
- বার্তা
- ছন্দোবিজ্ঞান
- স্থানান্তর
- যত্সামান্য
- ML
- পরিবর্তিত
- মডিউল
- মনিটর
- পর্যবেক্ষণ
- অধিক
- অবশ্যই
- নাম
- নাম
- নেভিগেট করুন
- ন্যাভিগেশন
- প্রয়োজনীয়
- প্রয়োজন
- প্রয়োজন
- চাহিদা
- নতুন
- কিছু না
- এখন
- of
- নৈবেদ্য
- on
- ONE
- ওগুলো
- কেবল
- খোলা
- ওপেন সোর্স
- ওপেন সোর্স কোড
- অপারেটর
- অপারেটরদের
- অনুকূল
- পছন্দ
- অপশন সমূহ
- or
- অর্কেস্ট্রেটেড
- অর্কেস্ট্রারচনা
- অন্যান্য
- আমাদের
- ফলাফল
- আউটপুট
- বাহিরে
- প্যাকেজ
- পান্ডাস
- শার্সি
- পরামিতি
- হাসপাতাল
- পাস
- গৃহীত
- কামুক
- কর্মক্ষমতা
- অনুমতি
- জেদ
- পাইপলাইন
- জায়গা
- মাচা
- Plato
- প্লেটো ডেটা ইন্টেলিজেন্স
- প্লেটোডাটা
- পয়েন্ট
- নীতি
- পোস্ট
- সম্ভাব্য
- অনুশীলন
- পূর্বশর্ত
- আগে
- পূর্বে
- প্রক্রিয়া
- প্রসেস
- প্রক্রিয়াজাতকরণ
- পণ্য
- পেশাদারী
- পেশাদার
- প্রোফাইল
- অভিক্ষেপ
- প্রদানকারী
- প্রদানকারীর
- উপলব্ধ
- পাইথন
- গুণ
- প্রশ্নের
- বৃদ্ধি
- পরিসর
- পড়া
- পড়া
- বাস্তব
- প্রকৃত সময়
- সাম্প্রতিক
- সুপারিশ করা
- এলাকা
- নিয়ন্ত্রক
- রিলেই
- প্রতিস্থাপন করা
- প্রতিস্থাপিত
- প্রয়োজনীয়
- আবশ্যকতা
- সংস্থান
- Resources
- যথাক্রমে
- প্রতিক্রিয়া
- ফলাফল
- রাখা
- অধিকার
- ভূমিকা
- সারিটি
- চালান
- দৌড়
- s
- সংরক্ষণ করুন
- পরিস্থিতিতে
- SDK
- নির্বিঘ্নে
- সার্চ
- অধ্যায়
- নিরাপদ
- দেখ
- খোঁজ
- জ্যেষ্ঠ
- Serverless
- সেবা
- বিন্যাস
- সেটআপ
- খোল
- উচিত
- প্রদর্শনী
- শো
- সহজ
- সহজতর করা
- থেকে
- একক
- স্ন্যাপশট
- সমাধান
- সলিউশন
- কিছু
- নির্দিষ্ট
- নিদিষ্ট
- খরচ
- বিবৃতি
- অবস্থা
- ধাপ
- প্রারম্ভিক ব্যবহারের নির্দেশাবলী
- এখনো
- স্টোরেজ
- সঞ্চিত
- কৌশল
- প্রবাহ
- স্ট্রিং
- সফল
- এমন
- যথেষ্ট
- সমর্থন
- সমর্থিত
- সিস্টেম
- টেবিল
- গ্রহণ করা
- গ্রহণ
- কার্য
- দল
- প্রযুক্তি
- টেমপ্লেট
- ধন্যবাদ
- যে
- সার্জারির
- তাদের
- তাহাদিগকে
- তারপর
- সেখানে।
- এইগুলো
- তারা
- তৃতীয় পক্ষের
- এই
- দ্বারা
- সময়
- থেকে
- পথ
- রুপান্তর
- ভ্রমণ
- সত্য
- চেষ্টা
- মঙ্গলবার
- পরিণত
- দুই
- আদর্শ
- ui
- সমন্বিত
- একক
- আপডেট
- আপডেট
- আপডেট
- আপগ্রেড
- আপগ্রেড
- আপলোড
- ব্যবহার
- ব্যবহার
- ব্যবহার ক্ষেত্রে
- ব্যবহৃত
- ব্যবহারকারী
- ব্যবহার
- মূল্য
- মানগুলি
- সংস্করণ
- মাধ্যমে
- চেক
- মতামত
- দৃষ্টিপাত
- দৃশ্যমান
- পদচারণা
- প্রয়োজন
- ছিল
- we
- ওয়েব
- ওয়েব সার্ভিস
- আমরা একটি
- কি
- কখন
- কিনা
- যে
- হু
- ইচ্ছা
- সঙ্গে
- মধ্যে
- ছাড়া
- হয়া যাই ?
- কর্মপ্রবাহ
- would
- লেখা
- লিখিত
- আপনি
- আপনার
- zephyrnet