CSV dosyası içe aktarma
7 dk okuma
Bir CSV içe aktarımı, yüklediğiniz dosyayı okur ve satırlarını bir veri tablosuna yazar. Arka planda, küçük partiler hâlinde çalışır; bu nedenle çok büyük bir dosya bile zaman aşımına uğramaz ve sitenizi engellemez.
Tabloyu açın, Import & feed sekmesine gidin ve CSV import kartını kullanın. Kartta şu yazar: "Upload a CSV file whose first row holds the column names. Large files are imported in the background."
Başlamadan önce
- Tablonun sütunları olmalıdır. Sütun yoksa sekmede Add columns first yazar.
- Dosyanın ilk satırı sütun adlarını içermelidir. Adlar yalnızca eşleşme önermek için kullanılır; tablonun anahtarlarıyla aynı olmaları gerekmez.
- Dosya bir
.csvveya.txtdosyası olmalı ve varsayılan olarak en çok 50 MB olabilir (wpmcf/data_tables/import_max_bytes). Sunucunuzun kendi yükleme sınırı (PHP'deupload_max_filesizevepost_max_size) da geçerlidir. Daha büyük dosyalar için ikisini de yükseltin ya da dosyayı bölün. - Mevcut satırları güncellemek için benzersiz bir sütun gerekir. Bkz. Veri tablosu oluşturma.
- Bir tabloya aynı anda yalnızca bir içe aktarma çalışabilir.
Adım adım
- Şuna tıklayın: Import CSV. Import into "Table name" iletişim kutusu açılır.
- Şuna tıklayın: Choose CSV file ve dosyayı seçin. Düğmenin üstündeki metin şöyle der: "Choose a CSV file. The first row must contain column names; comma, semicolon and tab separators are detected automatically." Dikey çizgi
|de algılanır. - İletişim kutusu artık üç blok gösterir. Henüz hiçbir şey yazılmadı.
Match columns. Her tablo sütunu için bir satır ve CSV column for {label} adlı bir seçici bulunur. Seçiciler dosyanın başlık adlarıyla dolar: bir sütunun anahtarı veya etiketi bir başlığa eşitse sütun eşleşir (büyük/küçük harf, boşluk, tire ve diğer noktalama işaretleri yok sayılır;Unit Pricedeğeriunit_priceile eşleşir). Dosyanın doldurmadığı bir sütun için - Skip - seçin. Boş bir başlık Column 3 olarak (konumuyla) gösterilir. 12'den fazla CSV sütunu varsa seçiciye bir Filter columns... kutusu eklenir.
First rows of the file. İlk beş satır; böylece sütunların ve metnin (aksanlar, tırnaklar) doğru okunduğunu denetleyebilirsiniz.
Existing rows. Tabloda zaten bulunan satırlara ne yapılacağı (aşağıya bakın). - Şuna tıklayın: Import ~N rows. Sayı, dosya boyutundan yapılan bir tahmindir. En az bir sütun eşleşene (ve güncelleme için bir eşleştirme sütunu seçilene) kadar düğme devre dışı kalır.
- Bir ilerleme çubuğu Import progress ve
Importing... N rows processed. You can close this window; the import continues in the background.iletisini gösterir. Dilediğiniz zaman Close düğmesine tıklayın ya da ileti Done ile bitene kadar izleyin.
İşlem bittiğinde N rows imported, M failed. iletisini görürsünüz. Bazı satırlar başarısız olduysa Some rows could not be imported kutusu ilk beş veritabanı iletisini listeler, örneğin Duplicate entry 'I1' for key '...uq_sku'.
Mevcut satırlar
Tabloda zaten bulunan satırlara ne olacağını Existing rows seçenekleri belirler:
Seçenek | Ne olur |
|---|---|
Keep them and add the new rows (varsayılan) | Dosyadaki her satır eklenir. Değeri benzersiz bir sütunla çakışan satır tek başına başarısız olur; diğerleri eklenir. |
Update rows with the same unique value, add the rest | Her dosya satırı, Match rows by... alanında seçtiğiniz benzersiz sütunla mevcut bir satırla eşleştirilir. Eşleşen satır güncellenir, eşleşmeyen satır eklenir. Tabloda benzersiz sütun yoksa "Updating needs a column marked indexed + unique in its advanced settings." notuyla devre dışıdır. |
Replace them with the new rows (rows missing from the new data are deleted) | Tablo, tam olarak dosyadaki satırlarla kalır. |
Hem Update hem de Replace modunda Match rows by sütunu, eşleştirdiğiniz sütunlardan biri olmalıdır. Update modunda, eşleştirdiğiniz sütunlarda boş bir hücre saklanan değeri boşaltır. Eşleştirmediğiniz (atladığınız) sütunlara dokunulmaz.
Replace: iki yol
- Eşleştirme alanıyla Replace. Şuradan benzersiz bir sütun seçin: Match rows by (recommended).... Eşleşen satırlar güncellenir, yeni satırlar eklenir ve dosyada bulunmayan satırlar en sonda silinir. Satır ID'leri korunur; dolayısıyla bir satırı ID'siyle hatırlayan her şey (URL'leriyle oluşturulan sayfalar, yapay zekâ içeriği ve elle yapılan düzenlemeler) de korunur. İletişim kutusu şunu söyler: "Rows are matched by this field: matching rows are updated, new rows added and rows missing from the new data deleted. Generated pages keep their URLs, AI content and hand edits."
- Eşleştirme alanı olmadan Replace (Do not match: replace all rows). Yeni satırlar önce tablonun bir çalışma kopyasına yüklenir. Çalışma kopyası ancak her satır hatasız okunduktan sonra tek adımda canlı tablonun yerine geçer; o zamana kadar canlı tabloya dokunulmaz. Dosyada hiç satır yoksa ya da herhangi bir satır başarısız olursa hiçbir şey değişmez ve ileti şunu söyler:
The new data has no rows, so the data table was left unchanged.veyaN rows could not be written, so the data table was left unchanged. Fix them and try again.Değişmeyen satırlar ID'sini korur; değişen bir satır ID'sini yalnızca sütunlarının en az yarısı değişmediyse korur, aksi hâlde yeni bir ID alır. İletişim kutusu uyarır: "Unchanged rows keep their identity, but a changed row may get a new one, so its generated page can lose its AI content and hand edits. Match rows by a unique field to avoid this."
Eşleştirme alanı kullanılan bir değiştirme sırasında bazı satırlar başarısız olursa dosyada bulunmayan satırlar silinmez (başarısız satırlardan ayırt edilemezler): Rows missing from the file were kept because some rows failed; fix them and import again to remove the rest.
Değerlerin okunma biçimi
İçe aktarma, satır yazmaktan daha hoşgörülüdür; çünkü dosyalar çoğu zaman düzensizdir. Her hücre sütunun türünden geçer:
Sütun | Hücre | Saklanan |
|---|---|---|
Number |
|
|
Number |
| boş (hata verilmez) |
Select, Radio buttons | seçeneklerden biri olmayan bir değer | boş (hata verilmez) |
Date |
|
|
True / false |
| Yes |
True / false |
| No |
Herhangi biri | eşleştirilmiş bir sütundaki boş hücre | boş |
Herhangi biri |
|
|
Virgül, tırnak ("") ve satır sonu içeren tırnaklı hücreler doğru okunur.
Ayırıcılar ve kodlamalar
- Ayırıcı: ilk satır belirler: virgül, noktalı virgül, sekme veya dikey çizgi. Elle seçemezsiniz; bunları karıştıran bir dosyayı elektronik tablonuzdan standart CSV olarak yeniden kaydetmek en iyisidir.
- Kodlama dosyadan algılanır:
- UTF-8, bayt sırası işaretiyle (BOM) veya işaretsiz (Excel'in olağan "CSV UTF-8" biçimi);
- UTF-16, bayt sırası işaretli little veya big endian (Excel'in "Unicode Text" dışa aktarımı);
- geçerli UTF-8 olmayan her şey, site diline göre seçilen bir Windows kod sayfası olarak okunur: Windows-1254 (Türkçe), 1250 (Lehçe, Çekçe, Slovakça, Macarca, Romence, Hırvatça, Slovence ...), 1251 (Rusça, Ukraynaca, Bulgarca, Sırpça ...), 1253 (Yunanca), 1255 (İbranice), 1256 (Arapça, Farsça, Urduca), 1257 (Baltık dilleri), 1258 (Vietnamca), diğer durumlarda 1252 (Batı Avrupa).
Aksanlar First rows of the file bölümünde yanlış görünüyorsa (örneğin Ý görünüyor ve doğrusu İ olmalıysa), dosya site diliyle uyuşmayan bir kod sayfasındadır. Elektronik tablonuzdan CSV UTF-8 olarak yeniden kaydedin ya da varsayılan kod sayfasını wpmcf/import/fallback_encoding filtresiyle değiştirin (filtre varsayılanı ve yerel ayarı alır, Windows-1254 gibi bir kod sayfası adı döndürür).
Büyük dosyalar ve arka plan
- Yüklenen dosya
wp-content/uploads/wpmcf-imports/altında rastgele bir adla saklanır, doğrudan web erişimine karşı korunur ve sonuç ne olursa olsun içe aktarma biter bitmez silinir. Yüklediğiniz ama hiç içe aktarmadığınız bir dosya, iletişim kutusunu kapattığınızda; her durumda da bir gün sonra kaldırılır. - İçe aktarma bir görevdir. Satırlar 500'lük parçalar hâlinde yazılır; bir parti yaklaşık 20 saniye (veya PHP bellek sınırının %80'ine kadar) çalışır ve sonraki parti tam olarak önceki partinin kaldığı yerden devam eder; böylece yeniden başlatma, biten satırları asla tekrarlamaz. Partileri Action Scheduler çalıştırır. Kuyruğu neyin başlattığı ve takıldığında ne yapılacağı için Arka plan görevleri sayfasına bakın.
- İletişim kutusunu kapatıp sayfadan ayrılabilirsiniz. Geri döndüğünüzde tabloda yeni satırlar olur. (Ayrıldığınız bir içe aktarmanın ilerleme durumu yeniden açılamaz; sonuç tablodur.)
- Çalışan bir içe aktarma varken aynı tabloya ikinci bir içe aktarma başlatmak reddedilir:
An import into this data table is still running. Wait until it is done, then start the next one.
İletiler
İleti | Anlamı |
|---|---|
| Yükleme başarısız oldu veya yarıda kesildi (çoğunlukla PHP'nin yükleme sınırı). |
| Uzantı |
| İçe aktarma boyut sınırı aşıldı. |
| İlk satır boş. |
| Hiçbir sütun eşleştirilmedi. |
| Eşleştirme sütunu benzersiz olmayan ya da eşleştirilmemiş bir güncelleme veya eşleştirme modu. |
| Bir günden uzun süre beklediniz ya da iletişim kutusunu kapattınız. |
| İçe aktarma sürerken tablo silindi. |
| İçe aktarma sürerken lisansın süresi doldu. |
Geliştiriciler için
wpmcf/data_tables/import_max_bytesboyut sınırını değiştirir (varsayılan 50 MB).wpmcf/import/fallback_encodingvarsayılan kabul edilen kod sayfasını değiştirir.- Bir içe aktarma bittiğinde
wpmcf/data_tables/syncedtetiklenir; tablo anahtarını ve bir özeti iletir (['type' => 'import', 'mode' => ..., 'rows' => ..., 'failed' => ...]). Bkz. Eylemler başvurusu.
Hâlâ takıldınız mı? Destek ile iletişime geçin