Qazanclar:
- Güclü SQL və pandas kodunu götürmək və süni intellektə aydın sxem və məqsəd verməklə onu sətir-sətir oxumaq və yoxlamaq bacarığı
- Birləşmədən/QOŞULDAN sonra sıra sayı, uyğunlaşma funksiyası və ötürmə qabiliyyəti kimi səssiz səhvləri tutmaq imkanı
- Debuqda problemi susdurmadan həll etmək və kodu istehsal mühitində sınaqdan keçirmədən işləmək bacarığı
Məlumat elminin iki əsas dili var: SQL (Structured Query Language — verilənlər bazalarından məlumatların sorğulanması üçün dil) və Python (xüsusilə, pandas kitabxanası — cədvəllərin proqramlı şəkildə manipulyasiya edilməsi üçün standart alət). Bu bölmədə biz süni intellektdən kod tərəfdaşı kimi istifadə etməyi öyrənəcəyik: düzgün suallarla ondan möhkəm SQL və pandas kodu əldə etmək, həmin kodu oxumaq və təsdiqləmək, onu sazlamaq və heç vaxt kor-koranə işləmək. Süni intellekt təkrarlanan kodu dəqiqələr əvəzinə saniyələrlə yazır; Amma sizin işiniz onun istehsal etdiyi kodun düzgün sütunu düzgün məntiqlə işlədiyinə əmin olmaqdır. İşçi kodu düzgün kod demək deyil.
Niyə AI ilə kod istehsal etmək güclü, lakin risklidir?
Süni intellekt kod yaratmaqda üç böyük üstünlük təmin edir: sürət (saniyələrdə 30 sətirlik qruplar üzrə dönmə əməliyyatını yazır), xatırlatma (unutduğunuz panda funksiyasını xatırladır) və öyrətmə (kod sətirini izah edir). Lakin o, üç risk daşıyır: səssiz məntiq xətası (səhv sütunu cəmləyən kod səhvsiz işləyir), quraşdırılmış funksiya (mövcud olmayan metodu təklif edir) və verim tələsi (kiçik verilənlər üzərində işləyən, lakin 10 milyon cərgədə çökən kod). Beləliklə, qızıl qayda: Süni intellekt kodunu özünüz yazmış kimi oxuyun. Başa düşmədiyiniz xətti işlətməyin.
SQL: verilənləri mənbədə emal edin
SQL verilənlər bazasından məlumatları əldə etməyə və orada emal etməyə imkan verir; Milyonlarla sətirləri Python-a çəkmədən ümumiləşdirə bilərsiniz. Əsas tikinti blokları: SEÇİN (hansı sütunlar), HARADA (hansı sətirlər), GROUP BY (qruplaşdırın və ümumiləşdirin), JOIN (cədvəlləri birləşdirin), HAVING (qrupdan sonrakı filtr). Süni intellekt mürəkkəb JOIN-lərin və pəncərə funksiyalarının yazılmasında çox faydalıdır, lakin iki şeyi yoxladığınızdan əmin olun: düzgün düymə vasitəsilə JOIN (yanlış düymə sətirləri təkrarlayır) və filtr məntiqi düzgündür (xüsusilə NULL davranış və tarix diapazonları).
Diqqət: AI tərəfindən yaradılan SQL sorğusunu birbaşa istehsal verilənlər bazasına qarşı çalıştırmayın. Kiçik bir nüsxə və ya LIMIT ilə sınaqdan keçirin. HARADA şərtini təsdiq etmədən YENİLƏNİB/SİLİN sorğusunu heç vaxt icra etməyin; Səhv WHERE bütün cədvəli silə bilər.
Python/pandas: çevik analiz
pandas Python-da cədvəlləri (DataFrame) manipulyasiya etməyin standart yoludur. Süni intellektdən ən səmərəli istifadə ona aydın sxem və məqsəd verməkdir. Ən çox istifadə edilən əməliyyatlar: filter, groupby, merge, pivot_table, application. AI bunları tez yazır; Yoxlamaq istədiyiniz məntiqdir: düzgün sütunda qruplaşma olubmu, birləşmə gözlənilmədən cərgələrin sayını dəyişibmi (birləşmədən sonra həmişə sətirlərin sayını yoxlayın), orijinalı dəyişdirən zəncir əməliyyatlarıdır.
əməliyyat
SQL
pandalar
nəzarət məntəqəsi
Filtrləmə
HARADA
df[df.x > 5]
NULL/NaN davranışı
qruplaşdırma
GROUP BY
df.groupby()
Düzgün sütundur?
birləşdirin
QOŞULUN
df.merge()
Sıra sayı dəyişikliyi
Xülasə
AVG(), SUM()
.mean(), .sum()
Hansı sütun yığılıb
Sırala
SİFARİŞ VERİN
.sort_values()
İstiqamət (artan/azalan)
deduplikasiya
FƏRQLİ
.drop_duplicates()
Hansı sütunlarda?
Sazlama: AI ilə
Kod uğursuz olduqda, AI əla sazlama tərəfdaşıdır. Ona tam səhv mesajını və müvafiq kod parçasını verin. Ancaq iki tələdən çəkinin. Birincisi, AI səhvi "susduran" bir həll təklif edə bilər (məsələn, xəbərdarlıqları gizlətmək) - bu səhvi düzəltmir, onu gizlədir. İkincisi, süni intellekt bəzən problemi “həll edərkən” başqa davranışı səssizcə dəyişir. Qayda: düzəlişi anlayın, səssizləşdirməyin, həll edin və düzəlişdən sonra çıxışın hələ də düzgün olduğunu yoxlayın.
Şərh edilə bilən və saxlanıla bilən kod istəyirsiniz
Süni intellektdən kod alarkən, sadəcə "işləyən" kod deyil, oxuna bilən və saxlanıla bilən kod tələb edin. Siz və ya bir həmkarınız bu kodu aylar sonra açdıqda, o, nə etdiyini başa düşməlidir. Bunu etmək üçün süni intellektə üç şeyi daxil etməyi vərdiş edin: mənalı dəyişən adları (orders_temiz, df2 deyil), kritik addımlardakı qısa şərh xətləri (nəyin edildiyini deyil, səbəbini izah edən) və sehrli nömrə əvəzinə adlandırılmış sabit (ACCEPT_ESIGI = 0,85 kodda basdırılmış 0,85 əvəzinə). Həmçinin uzun tək xətli zəncirlərdən çəkinin (bir xəttdə beş hərəkəti birləşdirin); bunlar sazlamağı çətinləşdirir. Varsayılan olaraq, AI tez-tez qısa və "ağıllı" kod istehsal edir; Əgər siz aydın şəkildə “oxunan, şərh oluna bilən, saxlanıla bilən yaz” desəniz, daha çox saxlanıla bilən nəticə əldə edəcəksiniz. Bu, həm də təkrar istehsal qabiliyyətinin əsasını təşkil edir (Vahid 10): başa düşülməyən kod, təhlükəsiz şəkildə yenidən işlədilə bilməyən koddur.
üç mini qutu
1-ci hal — replikasiyaya JOIN. Analitik sifarişləri məhsul cədvəli ilə birləşdirdi və ümumi dövriyyənin 3 dəfə çox olduğunu tapdı. Səbəb: hər bir məhsulun məhsul cədvəlində çoxlu sıra (müxtəlif rənglər) var idi; JOIN hər sifarişi təkrarlayır. Süni intellekt kodu "işləyirdi", lakin sətirlərin sayı 240 mindən 690 minə yüksəldi. Dərs: birləşmədən/Qoşulduqdan sonra həmişə sətirlərin sayını yoxlayın.
2-ci hal — Quraşdırma funksiyası. O, təcrübəçiyə AI df.groupby('x').summarize() təklif etdi; Pandalarda belə bir üsul yoxdur (.agg() var). Kod işləmədi, təcrübəçi 20 dəqiqə itdi. Dərs: sənəddən tanımadığınız funksiyanı yoxlayın; AI üsullar yarada bilər.
3-cü hal – Məhsuldarlığın azalması. Bir kod hər bir sıra üçün müraciətdə verilənlər bazasını sorğulayırdı; 5000 xətt üzrə işlədi, 4 milyon xətt üzrə 9 saat çəkdi və dayandı. Süni intellekt vektorlaşdırılmış (toplu) həll təklif etdikdə vaxt 40 saniyəyə endirildi. Dərs: kiçik verilənlər üzərində işləyən kod böyük verilənlərdə qəzaya uğraya bilər; Səmərəliliyi nəzərə alın.
Dörd kopyalana bilən şablon
1) Sxe ilə SQL sorğusu:
Rolunuz: SQL köməkçisi (PostgreSQL). Cədvəllər:- sifarişlər(id, müştəri_id, tarix vaxt damgası, məbləğ rəqəmi)- müştərilər(id, şəhər mətni)Tapşırıq: 2024-cü ildə şəhər üzrə ümumi dövriyyəni və sifarişlərin sayını azalan qaydada əldə edin. NULL şəhərləri necə idarə etdiyinizi izah edin. Sorğunu əvvəlcə LIMIT ilə sınayacağam; YENİLƏNİB/SİLİN.
2) nəzarət nöqtəsi ilə panda prosesi:
Məndə DataFrames df (sifarişlər) və df_customers (müştərilər) var. Şəhər başına orta məbləği hesablayın. ƏHƏMİYYƏTLİ: birləşmədən əvvəl və sonra sətirlərin sayını çap edin ki, təkrarlama olub-olmadığını görə bilim. Hansı sütunu birləşdirdiyinizi və niyə daxili/solu seçdiyinizi izah edin.
3) Kodun izahı və yoxlanılması:
Aşağıdakı pandaların kodunu sətir-sətir izah edin: hər sətir nə edir, hansı fərziyyələri irəli sürür, hansı hallarda yanlış nəticələr verə bilər? Mən fudge funksiyasından istifadə edib-etmədiyimi bildirin. Kod: [yapışdırın]
4) Sazlama:
Bu kod bu səhvi verir. Tam xəta mesajı: [yapışdırın]. Kod: [yapışdırın]. Xətanın ROOT səbəbini izah edin və onu düzəldin. Xəbərdarlığı susdurmaqla deyil, əslində problemi həll etməklə həll edin. Həmçinin düzəlişin çıxışı dəyişib-dəyişdirmədiyini göstərin.
Zəif məlumat / Güclü göstəriş
Zəif çağırış:
Mənə şəhər üzrə satışlar verən bir sorğu yazın.
Cədvəl adları, sütunlar, verilənlər bazası növü, NULL davranışı aydın deyil. AI ümumidir, ehtimal ki, cədvəlinizə uyğun olmayan bir sorğu yaradacaq.
Güclü göstəriş:
Rolunuz: SQL köməkçisi (MySQL 8). Cədvəl: satış (id, şəhər varchar, məbləğ ondalık, tarix tarixi). Tapşırıq: 2024-cü il üçün ümumi və orta məbləği, şəhərə düşən sifarişlərin sayını əldə edin; Ümumi məbləğə görə azalan çeşidləmə; Yalnız 100-dən çox sifariş olan şəhərləri göstərin (VAR). NULL şəhəri istisna edir. Sorğunu izah edin; LIMIT ilə sınaqdan keçirəcəyəm.
Burada verilənlər bazası, sxem, filtr, çeşidləmə və NULL qaydası göz qabağındadır.
Ümumi səhvlər
- Kodu oxumadan işlətmək. İşçi kodu düzgün kod deyil; Yanlış sütunu manipulyasiya edən kod da səhvsiz işləyir.
- Birləşmədən/QOŞULDAN sonra sıraların sayı yoxlanılmır. Səhv açar səssizcə cərgələri təkrarlayır və cəmi şişirdir.
- Uyğunlaşma funksiyasının yoxlanılması. AI mövcud olmayan üsulları təklif edə bilər; Sənəddən onu tanımadığınızı təsdiq edin.
- Səmərəlilik haqqında düşünmürəm. milyonlarla cərgədə kiçik məlumat qəzaları üzərində işləyən tətbiq/döngü; vektorlaşdırmaq.
- Birbaşa istehsal məlumat bazasında işləyin. Xüsusilə UPDATE/DELETE-in HARADA və ya sınaq olmadan işlədilməsi fəlakətlidir.
İpucu: Süni intellektdən aldığınız hər kod parçasına “təsdiqləmə xətti” əlavə etməyi vərdiş edin: emaldan əvvəl və sonrakı emal sayı, bir neçə nümunə sətir və əl ilə kritik cəmi. Bu üç yoxlama ən səssiz məntiq səhvlərini tutur.
Xülasə
Süni intellekt tez bir zamanda SQL və panda kodunu istehsal edən güclü tərəfdaşdır, lakin bu, kor səlahiyyət deyil. Ona sxemi və məqsədi aydın şəkildə bildirin; Onun yaratdığı kodu özünüz yazmış kimi oxuyun; Birləşmədən/Qoşulduqdan sonra sıraların sayını, uyğun funksiyaları və ötürmə qabiliyyətini yoxlayın; İstehsal bazasında sınaqdan keçirmədən onu işə salmayın. Sazlama zamanı problemi həll etməyi hədəfləyin, onu susdurmayın. İşləyən kod düzgün kod deyil; Yalnız siz dəqiqliyə zəmanət verə bilərsiniz.
Tətbiq tapşırığı
Təhlil sualı seçin (məsələn, “kanal üzrə aylıq dövriyyə”) və həm SQL, həm də pandalarla AI-dan kod tələb edin. Hər iki kodu sətir-sətir oxuyun, birləşmədən/qoşulduqdan sonra sətirlərin sayını yoxlayın və ən azı bir kritik məbləği əl ilə yoxlayın. İki kodun eyni nəticəni verib-vermədiyini müqayisə edin; Əgər fərqlidirsə, bunun səbəbini öyrənin.
yoxlama siyahısı
- [ ] Cədvəl/sxem və məqsədi AI-yə aydın şəkildə verdimmi?
- [ ] Mən onun yaratdığı kodu sətir-sətir oxudum və başa düşdüm?
- [ ] Mən birləşmədən/QOŞULDAN sonra sətirlərin sayını yoxladımmı?
- [ ] Mən sənədlərdən tanımadığım funksiyaları yoxladımmı?
- [ ] Mən kodu istehsal mühitində yox, əvvəlcə təhlükəsiz/kiçik verilənlər üzərində sınaqdan keçirmişəm?