1. Tentukan makna satu baris
Anggap tabel ditujukan untuk menelaah teks dan skor tersimpan dari postingan python. Satu baris mewakili satu postingan sumber yang diterima, sementara metadata eksekusi disimpan terpisah. Tentukan nilai yang wajib untuk analisis dan nilai yang boleh hilang. Ini rancangan tabel Anda, bukan janji bahwa setiap catatan memiliki semua properti tersebut.
2. Simpan respons asli
Jalankan https://api.redditdataapi.com/v1/posts?subreddit=python&limit=3 dari server. Simpan JSON sebelum konversi bersama rute, parameter tanpa rahasia, waktu pengambilan, dan versi pemuat. Arsip historis independen ini bukan layanan resmi atau siaran langsung Reddit. Catat pula hasil kosong yang berhasil sebagai masukan pekerjaan, bukan sebagai kegagalan konversi lokal.
3. Buat peta sumber ke tujuan
Petakan properti yang diamati ke kolom tujuan. Untuk id, pilih apakah string sumber dipertahankan. Untuk title dan text, bedakan properti yang hilang, null, dan string kosong. Untuk score, nyatakan tipe numerik yang diterima tanpa menyamakan ketidakhadiran dengan nol. Periksa satuan created_utc sebelum melakukan konversi waktu.
Tandai kolom turunan sebagai keputusan pemuat. Simpan nilai asli bila transformasi gagal. parent_id dan link_id yang tersedia memungkinkan hubungan lokal, tetapi tidak membuktikan pohon percakapan lengkap. API tidak menjalankan validasi skema tujuan pilihan Anda.
4. Jadikan penolakan dapat diperiksa
Simpan objek asli dan aturan yang gagal untuk setiap baris yang ditolak. Pisahkan masalah tipe dari pengecualian analitis yang disengaja karena perbaikannya berbeda. Hitung objek diterima, ditolak, dan dikecualikan dalam batch. Angka ini menjelaskan pemrosesan masukan Anda, bukan statistik aktivitas seluruh komunitas Reddit. Saat aturan berubah, bandingkan objek yang sebelumnya ditolak dengan hasil baru. Pertahankan alasan lama dan versi transformasinya. Dengan demikian, perubahan keputusan lokal dapat diperiksa sebelum perbedaan hasil dianggap berasal dari data sumber. Simpan catatan peninjauan bersama batch terkait.
5. Terima batch sebelum memasukkannya
Coba aturan baru pada berkas tersimpan yang sama sebelum memasukkan baris. Jika ada pengenal yang sesuai, dokumentasikan penanganan objek berulang. Halaman API tidak dijamin berisi catatan unik. Pisahkan masukan mentah dan hasil normalisasi agar versi skema baru tidak menghapus contoh yang mendasari keputusan sebelumnya.
Majukan titik lanjut lokal setelah berkas dan hasil pemuatan tercatat. Titik tersebut menjelaskan pekerjaan aplikasi, bukan kursor server yang stabil. Urutan _doc bukan waktu atau relevansi. Pengambilan dibatasi 100 catatan per permintaan dan 100 halaman per kueri.
6. Jelaskan alasan permintaan selanjutnya
Ambil batch tambahan untuk kebutuhan pemeriksaan atau analisis tertentu, bukan sekadar untuk mengulang konversi yang dapat dijalankan secara lokal. Respons masa depan dapat berbeda. Dokumentasi menjelaskan tanggal dan total; harga menjelaskan keberhasilan yang ditagih, pengembalian cadangan, dan pengulangan berhasil yang berbiaya lagi. Hasil akhirnya adalah prosedur pemuatan yang dapat ditinjau, bukan ekspor arsip yang lengkap dan tidak berubah.