Veri İçe Aktarma
Birden Fazla Kaynaktan Veri İçe Aktarma
CSV, Excel, JSON ve diğer formatlardan veri içe aktarın. Büyük veri setlerini akışlı yüklemelerle yönetin.
Veri Dosyası Yükle
POST /api/{tenantId}/{projectId}/dataset/{datasetId}/import
CSV, Excel ve XES dahil çeşitli dosya formatlarından veri yükleyin ve içe aktarın. Parçalı transfer ile büyük dosya yüklemelerini destekler.
Parametreler
| Parametre | Tip | Konum | Açıklama |
|---|---|---|---|
tenantId |
GUID | Yol | Kiracı kimliği |
projectId |
GUID | Yol | Proje kimliği |
datasetId |
GUID | Yol | Veri seti kimliği |
file |
Dosya | Form Verisi | Yüklenecek veri dosyası |
columnMapping |
JSON | Form Verisi | Sütun eşleme yapılandırması |
Sütun Eşleme Yapılandırması
{
"mapping": [
{
"sourceColumn": "Case_ID",
"targetColumn": "CaseID",
"dataType": "string"
},
{
"sourceColumn": "Event_Name",
"targetColumn": "Activity",
"dataType": "string"
},
{
"sourceColumn": "Event_Time",
"targetColumn": "Timestamp",
"dataType": "datetime",
"format": "yyyy-MM-dd HH:mm:ss"
}
],
"options": {
"hasHeader": true,
"delimiter": ",",
"encoding": "UTF-8",
"skipRows": 0
}
}
Yanıt
{
"importId": "import-550e8400-e29b-41d4-a716-446655440000",
"datasetId": "550e8400-e29b-41d4-a716-446655440000",
"status": "Processing",
"fileName": "process_events.csv",
"fileSize": 15728640,
"rowsProcessed": 0,
"rowsTotal": 50000,
"errors": [],
"warnings": [],
"startTime": "2024-01-15T10:30:00Z"
}
Eşlemeyle CSV İçe Aktar
POST /api/{tenantId}/{projectId}/dataset/{datasetId}/import/csv
Gelişmiş sütun eşleme, veri dönüştürme ve doğrulama seçenekleri ile CSV verisi içe aktarın.
İstek Gövdesi
{
"fileUrl": "https://your-storage.com/data/events.csv",
"mapping": [
{
"sourceColumn": "order_id",
"targetColumn": "CaseID",
"dataType": "string",
"required": true
},
{
"sourceColumn": "step_name",
"targetColumn": "Activity",
"dataType": "string",
"required": true
},
{
"sourceColumn": "timestamp",
"targetColumn": "Timestamp",
"dataType": "datetime",
"format": "ISO8601",
"required": true
},
{
"sourceColumn": "user_name",
"targetColumn": "Resource",
"dataType": "string",
"required": false
}
],
"options": {
"hasHeader": true,
"delimiter": ",",
"encoding": "UTF-8",
"skipRows": 1,
"validateData": true,
"replaceExisting": false
},
"transformations": [
{
"column": "Activity",
"type": "replace",
"find": "ORDER_",
"replace": "Order "
}
]
}
Yanıt
Dosya yükleme uç noktasıyla aynı içe aktarma durum nesnesini döner.
İçe Aktarma Durumunu Al
GET /api/{tenantId}/{projectId}/dataset/{datasetId}/import/{importId}/status
Veri içe aktarma işleminin ilerlemesini ve durumunu doğrulama sonuçları ve hata detaylarıyla birlikte izleyin.
Yanıt
{
"importId": "import-550e8400-e29b-41d4-a716-446655440000",
"datasetId": "550e8400-e29b-41d4-a716-446655440000",
"status": "Completed",
"fileName": "process_events.csv",
"fileSize": 15728640,
"rowsProcessed": 49876,
"rowsTotal": 50000,
"rowsSkipped": 124,
"startTime": "2024-01-15T10:30:00Z",
"endTime": "2024-01-15T10:45:23Z",
"duration": "00:15:23",
"errors": [
{
"row": 1532,
"column": "Timestamp",
"error": "Invalid date format",
"value": "2024-13-01 25:00:00"
}
],
"warnings": [
{
"row": 2847,
"column": "Resource",
"warning": "Empty value for optional field",
"value": ""
}
],
"statistics": {
"uniqueCases": 1247,
"uniqueActivities": 12,
"dateRange": {
"earliest": "2024-01-01T08:00:00Z",
"latest": "2024-01-31T17:30:00Z"
}
}
}
Desteklenen Dosya Formatları
mindzieStudio, süreç madenciliği verilerinin sorunsuz içe aktarımı için birçok veri formatını destekler:
CSV Dosyaları
Esnek ayrıştırma seçenekleriyle virgülle ayrılmış değerler.
- Özel ayırıcılar (virgül, noktalı virgül, tab)
- UTF-8, ISO-8859-1 kodlama desteği
- Başlık satırı algılama
- Tırnak işaretleri yönetimi
Excel Dosyaları
Microsoft Excel çalışma kitapları (.xlsx, .xls).
- Çoklu çalışma sayfası desteği
- Hücre biçimlendirme korunması
- Tarih/saat tanıma
- Büyük dosya akış desteği
XES Formatı
Süreç madenciliği için IEEE XES standardı.
- Tam XES spesifikasyon desteği
- Olay özellikleri ve uzantılar
- Yaşam döngüsü bilgisi
- Süreç madenciliği araç uyumluluğu
JSON Dosyaları
Karmaşık olaylar için yapılandırılmış JSON verisi.
- İç içe nesne desteği
- Dizi işleme
- Özel şema eşleme
- Akış halinde JSON işleme
JavaScript Örneği: İlerlemeli Dosya Yükleme
class DataImporter {
constructor(baseUrl, tenantId, projectId, token) {
this.baseUrl = baseUrl;
this.tenantId = tenantId;
this.projectId = projectId;
this.headers = {
'Authorization': `Bearer ${token}`
};
}
async uploadFile(datasetId, file, columnMapping) {
const formData = new FormData();
formData.append('file', file);
formData.append('columnMapping', JSON.stringify(columnMapping));
const url = `${this.baseUrl}/api/${this.tenantId}/${this.projectId}/dataset/${datasetId}/import`;
const response = await fetch(url, {
method: 'POST',
headers: this.headers,
body: formData
});
return await response.json();
}
async importCsv(datasetId, csvConfig) {
const url = `${this.baseUrl}/api/${this.tenantId}/${this.projectId}/dataset/${datasetId}/import/csv`;
const response = await fetch(url, {
method: 'POST',
headers: {
...this.headers,
'Content-Type': 'application/json'
},
body: JSON.stringify(csvConfig)
});
return await response.json();
}
async getImportStatus(datasetId, importId) {
const url = `${this.baseUrl}/api/${this.tenantId}/${this.projectId}/dataset/${datasetId}/import/${importId}/status`;
const response = await fetch(url, {
headers: this.headers
});
return await response.json();
}
async monitorImport(datasetId, importId, callback) {
const checkStatus = async () => {
try {
const status = await this.getImportStatus(datasetId, importId);
callback(status);
if (status.status === 'Processing') {
setTimeout(checkStatus, 2000); // Her 2 saniyede bir kontrol et
}
} catch (error) {
callback({ error: error.message });
}
};
checkStatus();
}
buildStandardMapping() {
return {
mapping: [
{
sourceColumn: 'case_id',
targetColumn: 'CaseID',
dataType: 'string'
},
{
sourceColumn: 'activity',
targetColumn: 'Activity',
dataType: 'string'
},
{
sourceColumn: 'timestamp',
targetColumn: 'Timestamp',
dataType: 'datetime',
format: 'ISO8601'
}
],
options: {
hasHeader: true,
delimiter: ',',
encoding: 'UTF-8',
validateData: true
}
};
}
}
// Kullanım örneği
const importer = new DataImporter(
'https://your-mindzie-instance.com',
'tenant-guid',
'project-guid',
'your-token'
);
// İlerlemeli dosya yüklemeyi yönet
document.getElementById('fileInput').addEventListener('change', async (e) => {
const file = e.target.files[0];
if (!file) return;
const mapping = importer.buildStandardMapping();
try {
const result = await importer.uploadFile('dataset-guid', file, mapping);
console.log('Yükleme başladı:', result.importId);
// İlerlemeyi izle
importer.monitorImport('dataset-guid', result.importId, (status) => {
if (status.error) {
console.error('İçe aktarma başarısız:', status.error);
} else {
const progress = (status.rowsProcessed / status.rowsTotal) * 100;
console.log(`İlerleme: ${progress.toFixed(1)}% (${status.rowsProcessed}/${status.rowsTotal})`);
if (status.status === 'Completed') {
console.log('İçe aktarma başarıyla tamamlandı!');
console.log(`${status.rowsProcessed} satır işlendi, ${status.errors.length} hata oluştu`);
}
}
});
} catch (error) {
console.error('Yükleme başarısız:', error);
}
});