ArcGIS gagal mengimpor semua catatan dari file CSV besar ke file tabel geodatabase meskipun berada dalam batas ukuran tabel FGDB

11

Saya menggunakan ArcGIS 10.0 pada Windows 7 64-bit dengan RAM 4GB.

Saya memiliki beberapa tabel yang sangat besar dalam format CSV untuk diimpor ke ArcGIS, semuanya memiliki sekitar 30 bidang, lebih dari 5 juta catatan per tabel (beberapa memiliki dua kali lipat atau lebih), dan ukuran file hingga sekitar 5 GB. Saya mencoba untuk mengimpor masing-masing ke file geodatabase sebagai tabel terpisah sehingga saya akhirnya bisa menghubungkan mereka ke kelas fitur dan menganalisis hasil dalam tabel sesuai dengan lokasi mereka.

Masalahnya adalah bahwa ArcGIS tampaknya hanya berhenti mengimpor catatan pada titik tertentu. Saya menggunakan alat "Table to Table" di bawah Konversi> Ke Geodatabase, tetapi alat "Salin Baris" memiliki masalah yang sama. Bahkan jika saya hanya menambahkan file CSV langsung ke ArcGIS tanpa mencoba mengubahnya ke tabel FGDB terlebih dahulu, masalahnya tetap sama. Salah satu meja saya memiliki sekitar 11 juta catatan, dan ArcGIS hanya mengimpor sekitar 10 juta saja. ArcGIS tidak memberi tahu saya bahwa ada kesalahan telah terjadi, alat hanya selesai seolah tidak ada yang salah.

Saya sudah mencobanya beberapa kali sekarang dan jumlah catatan yang membuatnya menjadi tabel FGDB selalu sama, dan sepertinya bukan batas ukuran file yang pernah saya dengar (bukan kuadrat 2 atau 16). ArcGIS dapat mengimpor CSV lain dengan sekitar 6 juta catatan dan semua catatan datang (meskipun dengan masalah yang saya alami dengan tabel yang lebih besar, yang lebih kecil adalah jenis tersangka sekarang juga). Situs web ESRI mencantumkan batas ukuran berikut dalam file geodatabase , dan saya jauh dari salah satu dari mereka:

  • Ukuran file geodatabase: Tidak ada batasan
  • Tabel atau ukuran kelas fitur: 1 TB (default), 4 GB atau 256 TB dengan kata kunci
  • Jumlah kelas fitur dan tabel: 2.147.483.647
  • Jumlah bidang dalam kelas fitur atau tabel: 65.534
  • Jumlah baris dalam kelas fitur atau tabel: 2.147.483.647
  • Panjang nama geodatabase: Jumlah karakter yang diizinkan sistem operasi dalam folder
  • Kelas fitur atau panjang nama tabel: 160 karakter
  • Panjang nama bidang: 64 karakter
  • Lebar bidang teks: 2.147.483.647

Yang benar-benar perlu saya lakukan untuk tabel ini adalah menambahkan beberapa bidang, menghapus beberapa lainnya, dan menghasilkan nilai untuk bidang baru (jumlah dari beberapa bidang yang ada). Saya menggunakan ArcGIS untuk itu karena saya terbiasa dengan kalkulator lapangan dan saya tahu (atau tahu , sampai sekarang) bahwa ia dapat menangani tabel yang terdiri dari jutaan catatan, sedangkan sebagian besar perangkat lunak desktop lain yang saya miliki berguna (MS Access / Excel ) tersedak pada banyak catatan. Jadi saya terbuka untuk menggunakan beberapa perangkat lunak lain untuk memanipulasi tabel asli dan kemudian mengekspor tabel yang dihasilkan (jauh lebih kecil) ke ArcGIS. Sungguh, fakta bahwa saya mengalami masalah ini dan bahwa ArcGIS tidak memberi saya kesalahan atau peringatan bahwa masalah tersebut bahkan terjadi membuat saya ingin menangani data ini di luar ArcGIS sebanyak mungkin.

Dan C
sumber
2
Jika "jumlah catatan yang membuatnya menjadi tabel FGDB selalu sama" maka saya akan melihat catatan terakhir dan berikutnya untuk melihat apakah mereka mungkin memiliki sesuatu di dalamnya yang terlihat tidak konsisten dibandingkan dengan jutaan yang berhasil diimpor sebelumnya.
PolyGeo
1
Ide bagus. Saya tidak bisa melihat perbedaan antara catatan terakhir di tabel FGDB terpotong dan catatan setelah itu (dari CSV). Saya baru saja mencoba menghapus semua catatan yang berhasil diimpor dari CSV sumber, kemudian mengimpor sisanya ke tabel FGDB lain, dan itu berhasil. Jadi sepertinya tidak ada masalah dengan satu rekaman. Untuk memperburuk keadaan, saya menggabungkan dua tabel FGDB (di antara mereka berdua saya memiliki semua catatan sumber), dan sekali lagi ArcGIS berpura-pura semuanya berjalan dengan baik, tetapi tabel yang digabungkan hanya berisi 9,6 juta dari 10,9 juta catatan dari keduanya Tabel FGDB.
Dan C
Sudahkah Anda membuka insiden dukungan dengan ESRI? Tampaknya pada titik ini, Anda telah menemukan apa yang berpotensi menjadi masalah yang agak serius. Jika tidak ada yang lain, staf pendukung akan tertarik untuk mengetahuinya hanya karena mereka mungkin sudah tahu solusinya, atau akan bersedia membantu dengan pengujian.
Dapatkan Spasial
Saya setuju dengan Get Spatial tetapi satu tes terakhir yang mungkin ingin Anda jalankan adalah menghasilkan file CSV dengan satu bidang tempat Anda meletakkan nilai yang identik (mungkin "tes"). Jika teori Anda adalah bahwa 9,6 juta adalah maksimum maka batas ini akan mencapai kapan saja 10 juta garis "tes" digunakan, tetapi tidak ketika 9,5 juta garis adalah.
PolyGeo
Saya sekarang sudah mencoba dengan CSV yang berbeda, tetapi juga besar (lebih dari 10 juta rekaman) dan gagal dengan cara yang sama, tetapi pada baris yang berbeda (sekitar 8,9 juta rekaman masuk). Jadi sepertinya itu bukan jumlah catatan tertentu, atau ukuran tabel tertentu. Saya akan mencoba tes CSV dengan dua bidang dan melihat apa yang terjadi. Namun saya akan menelepon ESRI pada hari Senin, proses ini gagal tanpa pesan kesalahan tidak dapat diterima dan membuat bahkan catatan yang membuatnya mencurigakan.
Dan C

Jawaban:

9

Saya memang memanggil dukungan ESRI tentang ini dan jawaban mereka tidak membesarkan hati, tetapi itu menjelaskan masalahnya. Mengutip ESRI: Masalahnya adalah bahwa ArcGIS Desktop, menjadi perangkat lunak 32-bit, paling banyak menggunakan RAM 4GB. File teks harus diproses dalam RAM sebelum disimpan sebagai sebuah tabel, jadi di beberapa poing selama pemrosesan, ArcGIS mencapai batas RAM dan hanya berhenti di sana. File yang saya impor berukuran sekitar 6GB. Ternyata fakta bahwa itu gagal tanpa memberikan pesan kesalahan adalah unik bagi saya, saya mencoba meminta orang lain di kantor saya melakukannya dan impor masih gagal, tetapi memberikan pesan kesalahan (yang tidak membantu, tetapi setidaknya sesuatu yang membiarkan pengguna tahu ada yang salah), dan perwakilan ESRI mengatakan bahwa itu harus memberikan kesalahan.

Solusi saya adalah membagi file menjadi dua CSV yang lebih kecil menggunakan editor teks (saya menggunakan EditPad Pro), mengimpor masing-masing ke FGDB sebagai tabel terpisah, kemudian menggabungkan dua tabel FGDB. Untuk beberapa alasan ini gagal pertama kali saya mencobanya tetapi bekerja kemudian. Saya mungkin bisa menguji ini sedikit lebih lengkap, saya akan berurusan dengan file ukuran ini secara berkelanjutan.

Saya menggunakan ArcGIS 10.0, tetapi ArcGIS 10.1 paket layanan 1 baru saja dirilis dan menambahkan kemampuan untuk menggunakan geoprosesor latar 64-bit, yang akan membiarkan geoprosesor menggunakan lebih dari 4GB RAM, yang dapat memperbaiki masalah ini tetapi saya tidak bisa ujilah itu.

UPDATE: Saya sekarang menggunakan ArcGIS 10.1 SP1 (dengan addon geoprocessing latar 64-bit) dan berhasil mengimpor .CSVs raksasa ini, setidaknya yang saya bahas sejauh ini. Pada mesin dengan 14GB RAM (ya, 14), 6GB .CSV dengan sekitar 10,5 juta baris berhasil diimpor ke tabel FGDB.

Dan C
sumber
1
Saya ingin tahu apakah Anda dapat mencoba menjalankannya dalam versi 64bit GDAL. Saya yakin itu akan bekerja dengan baik.
Ragi Yaser Burhum
7

Untuk keperluan pemuatan data, membaca file CSV besar ke dalam memori agak konyol. Hanya perlu membaca 1 baris setiap saat.

Saya akan menyarankan menulis skrip Python dan menggunakan csvmodul untuk membacanya baris demi baris dan memasukkan baris ke dalam tabel menggunakan InsertCursor(atau lebih disukai arcpy.da.InsertCursorkarena lebih cepat, tetapi hanya tersedia di 10.1).

Sunting: Baca saja paragraf terakhir Anda. Sepertinya Anda sebenarnya bisa melakukan ini di dalam Python dengan mudah, bahkan mengekspor hasilnya kembali ke CSV atau format lain.

Jika Anda bisa menggambarkan dengan tepat apa yang perlu Anda lakukan dengan setiap baris dan kolom yang akan membantu.

blah238
sumber
4

Sudahkah Anda mencoba membagi file csv 5GB menjadi kecil.

ada alat untuk membagi csv berdasarkan baris atau jumlah file.

Membagi file dan kemudian mencoba untuk mengimpor .. Tapi ada batasan dalam alat ini, saya pikir itu hanya akan berfungsi untuk tabel dalam file (saya pikir begitu). tolong cobalah.

http://www.shivaranjan.com/2008/11/06/how-to-split-csv-file-into-multiple-parts-easily-and-quickly/

vadivelan
sumber
Saya berencana untuk mencobanya jika harus, tidak ada banyak CSV yang harus ditangani sehingga saya mungkin akan membaginya secara manual dengan editor teks saya. Saya masih ingin mencari tahu apakah ada orang lain yang memiliki masalah ini, jika ArcGIS akan membuat kebiasaan salah paham meja besar dan bahkan tidak memiliki kesopanan untuk melempar pesan kesalahan yang tidak berguna, itu akan menjadi masalah.
Dan C
OK, saya baru saja mencoba ini dan itu berfungsi sebagian. Setelah membagi CSV menjadi dua yang lebih kecil (secara manual, dengan editor teks), mereka berhasil mengimpor ke dua tabel FGDB terpisah dan semua catatan ada di sana. Tetapi ketika saya mencoba untuk menggabungkan dua tabel FGDB menjadi satu, ArcGIS sekali lagi menjalankan proses seolah-olah tidak ada yang salah, dan kemudian tabel gabungan hilang 1,3 juta catatan.
Dan C
2

Saya mengalami kesalahan ini (001156) pada baris yang sama dari file teks yang dibatasi pipa besar (2,712.391) baris sekitar seperempat dari jalan melalui.
Jadi saya pikir ada sesuatu yang salah dengan garis itu, tetapi itu identik dengan sisa baris.
Saya akhirnya menghapus baris dari impor parsial dan kemudian memuat data (Load> Load Data ...) dan bisa mendapatkan semua baris 2M +.

Saya juga menggunakan 10.1 SP1 w / 64 bit latar belakang geoprocessing pada 16GB RAM dan ini adalah proses yang akan memanfaatkan RAM (tidak setiap proses diaktifkan dalam 64-bit belum).
Penanganan lambat, klunky, tetapi bekerja secara konsisten.
Anda mungkin harus menyiapkan tabel kosong terlebih dahulu jika Anda tidak berhasil dengan tingkat impor apa pun.

Mat
sumber