ساخت خط لوله ETL با کمک هوش مصنوعی بدون تیم داده

داده های کسب و کار اغلب در صدها فایل اکسل نامرتبط قرار دارند و برای تصمیم گیرندگان نامرئی می شوند. در اینجا یک مدل برای Citizen Data Engineering با استفاده از Python، GitHub Copilot و Qlik Sense برای ادغام سیلوهای داده بدون نوشتن یک خط کد دستی ارائه شده است.
در دنیای شرکت ها، رایج ترین پایگاه داده Oracle یا PostgreSQL نیست اکسل.
ما آن را همه جا میبینیم: تیمهای مدیریت استانداردهای فناوری را در صفحات گسترده ردیابی میکنند، تیمهای فروش سرنخها را در فایلهای xlsx. و منابع انسانی استفاده را در پوشههای مشترک ردیابی میکنند. در یک مطالعه موردی اخیر در فوجیتسو، یک تیم استانداردسازی فنی خود را در حال مدیریت بیش از 400 فایل اکسل جداگانه (چک لیست TSI) دریافتند که حاوی دادههای پذیرش نرمافزار حیاتی است.
داده ها ارزشمند بودند، اما قالب برای تحلیل استراتژیک بی فایده بود. برای پاسخ به یک سوال ساده مانند “کدام بخش از نرم افزارهای پرخطر استفاده می کند؟” شخصی مجبور شد ده ها فایل را به صورت دستی باز کند.
به طور سنتی، حل این مورد نیاز به یک تیم مهندسی داده برای ساخت یک خط لوله ETL (Extract, Transform, Load) داشت. اما منابع کمیاب است.
این مقاله یک مدل داده “محور میدان” را بررسی می کند که در آن یک غیر برنامه نویس از GitHub Copilot به عنوان “مهندس داده مجازی” استفاده می کند و اسکریپت های Python را برای تمیز کردن، ادغام و بارگذاری آن داده ها در Qlik Sense برای تجسم ایجاد می کند.
مشکل: معماری “اکسل سیلو”.
وضعیت اولیه اکثر فرآیندهای تجاری قدیمی به این صورت است:
- خرد کردن: داده ها به صدها فایل تقسیم می شوند (به عنوان مثال یک فایل در ماه یا هر بخش).
- ناهماهنگی: افراد داده ها را متفاوت وارد می کنند. یک سلول می گوید “United States”، دیگری “United States” و دیگری “United States”.
- شکنندگی: فرمول های اکسل (مانند VLOOKUP) با جابجایی سطرها به راحتی شکسته می شوند.
هدف حرکت از فایل های استاتیک به هوش پویا است.
راه حل: ETL “Citizen” با کمک هوش مصنوعی
معماری پیشنهادی نیاز به یک تیم مهندسی اختصاصی را با استفاده از LLM (GitHub Copilot) برای پر کردن شکاف بین منطق تجاری و نحو Python دور میزند.
گردش کار:
- بلع: پایتون (پانداها) بیش از 400 فایل اکسل را از یک دایرکتوری می خواند.
- تمیز کردن: اسکریپت ها نام ستون ها را عادی می کنند، مقادیر از دست رفته (NaN) را مدیریت می کنند و اشتباهات تایپی را تصحیح می کنند.
- تبدیل: تبدیل جداول پهن (قابل خواندن توسط انسان) به جداول طولانی (قابل خواندن با ماشین).
- تجسم کنید: Qlik Sense مجموعه داده تمیز را برای یک داشبورد تعاملی بارگیری می کند.
1. چرخه توسعه “اولین سریع”.
در مطالعه موردی فوجیتسو، توسعهدهنده یک متخصص دامنه است، نه یک کدنویس پایتون. به جای کد نوشتن، نوشتند قصد.
چرخه توسعه تغییر کرده است کد را بنویسید -> Run -> Failed Prompt -> View -> Ruص.
استراتژی سریع:
“من یک پوشه از فایل های اکسل دارم. من به یک اسکریپت پایتون نیاز دارم تا همه آنها را بخوانم، آنها را در یک DataFrame ادغام کنم و یک ستون نام فایل اضافه کنم تا منبع را بدانم.”
الگوی تولید شده توسط کوپایلوت:
import pandas as pd
import glob
import os
def merge_excel_files(folder_path):
# Create a list to hold all dataframes
all_data = []
# Get all excel files in the directory
files = glob.glob(os.path.join(folder_path, "*.xlsx"))
for filename in files:
try:
df = pd.read_excel(filename)
# Feature Engineering: Track the source file
df['source_file'] = os.path.basename(filename)
all_data.append(df)
except Exception as e:
print(f"Error reading {filename}: {e}")
# Concatenate all data into one DataFrame
merged_df = pd.concat(all_data, ignore_index=True)
return merged_df
# Execution
path = r'C:\Data\TSI_Checklists'
final_df = merge_excel_files(path)
print(f"Merged {len(final_df)} rows successfully.")
2. تصحیح و تمیز کردن خودکار داده ها
یکی از بزرگترین موانع در داده ها در اکسل “داده های کثیف” است. می توان یک سلول را خالی گذاشت یا تاریخ را به عنوان متن وارد کرد.
در این مدل، «توسعهدهنده شهروند» از Copilot برای پیادهسازی مدیریت خطای قابل اعتماد استفاده میکند. هنگامی که اسکریپت به دلیل یک ستون از دست رفته شکست خورد، توسعهدهنده StackOverflow را بررسی نکرد – او فقط خطا را در چت IDE قرار داد.
اعلان:
“من KeyError را دریافت می کنم: “نام محصول” زیرا برخی از فایل ها دارای “نام محصول” بدون فاصله هستند.” اسکریپت را تصحیح کنید تا نام ستون ها استاندارد شود.”
منطق حاصل از “خوددرمانی”:
def standardize_columns(df):
# Map varying column names to a standard schema
column_mapping = {
'ProductName': 'Product Name',
'Prod_Name': 'Product Name',
'dept_id': 'Department ID'
}
df.rename(columns=column_mapping, inplace=True)
# Drop rows where critical data is missing
df.dropna(subset=['Product Name'], inplace=True)
return df
این فرآیند تکراری به تیم اجازه داد تا تشخیص ناهنجاری پیشرفته را ایجاد کند. فهرست کردن فایل هایی که پردازش نشدند تا بتوان آنها را در منبع ثابت کرد.
پیش نمایش خط لوله
معماری ورودی های بدون ساختار را به یک مدل تحلیلی ساخت یافته تبدیل می کند.
لایه تجسم: Qlik Sense
هنگامی که داده ها در یک مجموعه داده تمیز ادغام شدند، در Qlik Sense بارگذاری شدند. از آنجایی که داده ها اکنون قابل خواندن توسط ماشین هستند (فرمت طولانی)، ابزار BI می تواند تجمیع هایی را انجام دهد که در اکسل غیرممکن است.
ویژگی های کلیدی شامل:
- فیلتر بین بخش ها: محصولات پرخطر را انتخاب کنید و فوراً ببینید کدام بخش ها از آنها استفاده می کنند.
- تحلیل روند: تجسم دریافت در طول زمان — زمانی که داده ها در فایل های ماهانه ضبط می شوند امکان پذیر نیست.
- شکستن: روی نمودار میله ای کلیک کنید تا فایل اکسل خاص و شناسه ردیفی را که به عدد کمک کرده است، ببینید.
ROI: معیارهایی که مهم هستند
نتایج این آزمایش “مهندسی داده شهروندی” قابل توجه بود. با حذف اتکا به یک تیم مرکزی فناوری اطلاعات برای تحویل، کسب و کار به دست آورد:
- سرعت توسعه: نویسنده تولید کرد 350 قدم کد پایتون آماده تولید در حدود 40 ساعت.
- بهره وری: این معادل است 8.8 قدم در ساعت – قابل مقایسه با توسعه دهندگان حرفه ای (در مقایسه با 14.6 گام در ساعت برای کارهای مشابه).
- کیفیت: کیفیت داده ها به طور قابل توجهی بهبود یافت زیرا اسکریپت پایتون قوانین اعتبار سنجی را اعمال می کرد که ورودی دستی نمی توانست.
نتیجه گیری
مانع ورود به بازار برای ساخت کانال های داده قوی از بین رفته است. دیگر نیازی به دانستن نحو آن ندارید pandas.melt() یا نحوه رسیدگی به استثناهای حافظه پایتون.
با ترکیب GitHub Copilot (برای تولید نحو و منطق) با Qlik Sense (برای تجسم)، متخصصان دامنه می توانند از “تله اکسل” فرار کنند. آنها می توانند خطوط لوله ETL خود را بسازند و صدها فایل استاتیک را به یک سیستم پشتیبانی تصمیم گیری زنده و تنفسی تبدیل کنند.
آینده استفاده از داده ها فقط ابزارهای بهتر برای مهندسان داده نیست. این در مورد دادن قدرت مهندسی به افرادی است که داده ها را بهتر درک می کنند.



