Veri Seti Oluşturma

Yeni Veri Seti Oluşturma

CSV dosyalarından, ZIP paketlerinden veya ikili dosyalardan veri setleri oluşturun. Her format, süreç madenciliği analizi için belirli sütun eşlemeleri gerektirir.

Bağlantı Testi

Yetkisiz Ping

GET /api/{tenantId}/{projectId}/dataset/unauthorized-ping

Kimlik doğrulaması gerektirmeyen test uç noktası.

Yanıt

Ping Başarılı

Kimlik Doğrulamalı Ping

GET /api/{tenantId}/{projectId}/dataset/ping

API erişimini doğrulamak için kimlik doğrulamalı ping uç noktası.

Yanıt (200 OK)

Ping Başarılı (tenant id: {tenantId})

Tüm Veri Setlerini Listele

GET /api/{tenantId}/{projectId}/dataset

Belirtilen projedeki tüm veri setlerini getirir.

Yanıt (200 OK)

{
  "datasets": [
    {
      "datasetId": "550e8400-e29b-41d4-a716-446655440000",
      "datasetName": "Sipariş Süreci",
      "datasetDescription": "SAP'den etkinlik günlüğü",
      "projectId": "660e8400-e29b-41d4-a716-446655440000",
      "caseIdColumnName": "CaseID",
      "activityColumnName": "Activity",
      "timeColumnName": "Timestamp",
      "resourceColumnName": "Resource",
      "beginTimeColumnName": null,
      "expectedOrderColumnName": null,
      "useDateOnlySorting": false,
      "useOnlyEventColumns": false,
      "dateCreated": "2024-01-15T10:30:00Z",
      "dateModified": "2024-01-15T14:45:00Z",
      "createdBy": "user@example.com",
      "modifiedBy": "user@example.com"
    }
  ]
}

CSV'den Veri Seti Oluşturma

POST /api/{tenantId}/{projectId}/dataset/csv

Sütun eşlemeleri ile CSV dosyası yükleyerek yeni bir veri seti oluşturur.

İstek (multipart/form-data)

Alan Tip Zorunlu Açıklama
file dosya Evet Yüklenecek CSV dosyası (maks 1GB)
datasetName string Evet Yeni veri seti için isim
caseIdColumn string Evet Case ID içeren sütun adı
activityNameColumn string Evet Aktivite adlarını içeren sütun
activityTimeColumn string Evet Zaman damgası içeren sütun
resourceColumn string Hayır Kaynak/uygulayan sütun adı
startTimeColumn string Hayır Aktivite başlangıç zamanları için sütun
cultureInfo string Hayır Ayrıştırma için kültür (varsayılan: "en-US")

Yanıt (200 OK)

{
  "datasetId": "550e8400-e29b-41d4-a716-446655440000",
  "caseCount": 5200,
  "eventCount": 150000,
  "invalidValueCount": 0,
  "skippedRowsCount": 0,
  "errors": [],
  "rowIssues": [],
  "statusCode": 200
}

Hata Yanıtı (422 İşlenemeyen Varlık)

{
  "errors": ["CSV dosyasında 'CaseID' sütunu bulunamadı"],
  "statusCode": 422
}

ZIP Paketinden Veri Seti Oluşturma

POST /api/{tenantId}/{projectId}/dataset/package

Veri dosyaları içeren ZIP paketi ile yeni bir veri seti oluşturur.

İstek (multipart/form-data)

Alan Tip Zorunlu Açıklama
file dosya Evet ZIP paket dosyası (maks 1GB)
datasetName string Evet Yeni veri seti için isim
cultureInfo string Hayır Ayrıştırma için kültür (varsayılan: "en-US")

Yanıt (200 OK)

{
  "datasetId": "550e8400-e29b-41d4-a716-446655440000",
  "caseCount": 5200,
  "eventCount": 150000,
  "invalidValueCount": 0,
  "skippedRowsCount": 0,
  "errors": [],
  "rowIssues": [],
  "statusCode": 200
}

İkili Dosyadan Veri Seti Oluşturma

POST /api/{tenantId}/{projectId}/dataset/binary

Sütun eşlemeleri ile ikili formatta dosyadan yeni bir veri seti oluşturur.

İstek (multipart/form-data)

Alan Tip Zorunlu Açıklama
file dosya Evet Yüklenecek ikili dosya (maks 1GB)
datasetName string Evet Yeni veri seti için isim
caseIdColumn string Evet Case ID içeren sütun adı
activityNameColumn string Evet Aktivite adlarını içeren sütun
activityTimeColumn string Evet Zaman damgası içeren sütun
resourceColumn string Hayır Kaynak/uygulayan sütun adı
startTimeColumn string Hayır Aktivite başlangıç zamanları için sütun

Yanıt (200 OK)

CSV oluşturma yanıtı ile aynı yapıdadır.

Uygulama Örnekleri

cURL - CSV Yükleme

curl -X POST "https://your-mindzie-instance.com/api/12345678-1234-1234-1234-123456789012/87654321-4321-4321-4321-210987654321/dataset/csv" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -F "file=@event_log.csv" \
  -F "datasetName=Siparişler" \
  -F "caseIdColumn=CaseID" \
  -F "activityNameColumn=Activity" \
  -F "activityTimeColumn=Timestamp" \
  -F "resourceColumn=User" \
  -F "cultureInfo=en-US"

cURL - ZIP Paket Yükleme

curl -X POST "https://your-mindzie-instance.com/api/12345678-1234-1234-1234-123456789012/87654321-4321-4321-4321-210987654321/dataset/package" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -F "file=@data_package.zip" \
  -F "datasetName=SAP Dışa Aktarımı" \
  -F "cultureInfo=en-US"

Python

import requests

TENANT_ID = '12345678-1234-1234-1234-123456789012'
PROJECT_ID = '87654321-4321-4321-4321-210987654321'
BASE_URL = 'https://your-mindzie-instance.com'

class DatasetUploader:
    def __init__(self, token):
        self.headers = {'Authorization': f'Bearer {token}'}

    def create_from_csv(self, file_path, dataset_name, case_id_col, activity_col, time_col,
                        resource_col=None, start_time_col=None, culture='en-US'):
        """CSV dosyasından veri seti oluştur."""
        url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/dataset/csv'

        with open(file_path, 'rb') as f:
            files = {'file': (file_path, f, 'text/csv')}
            data = {
                'datasetName': dataset_name,
                'caseIdColumn': case_id_col,
                'activityNameColumn': activity_col,
                'activityTimeColumn': time_col,
                'cultureInfo': culture
            }
            if resource_col:
                data['resourceColumn'] = resource_col
            if start_time_col:
                data['startTimeColumn'] = start_time_col

            response = requests.post(url, headers=self.headers, files=files, data=data)

        if response.ok:
            return response.json()
        else:
            raise Exception(f'Yükleme başarısız: {response.text}')

    def create_from_package(self, file_path, dataset_name, culture='en-US'):
        """ZIP paketinden veri seti oluştur."""
        url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/dataset/package'

        with open(file_path, 'rb') as f:
            files = {'file': (file_path, f, 'application/zip')}
            data = {
                'datasetName': dataset_name,
                'cultureInfo': culture
            }

            response = requests.post(url, headers=self.headers, files=files, data=data)

        if response.ok:
            return response.json()
        else:
            raise Exception(f'Yükleme başarısız: {response.text}')

    def list_datasets(self):
        """Projede tüm veri setlerini listele."""
        url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/dataset'
        response = requests.get(url, headers=self.headers)
        return response.json()

# Kullanım
uploader = DatasetUploader('your-auth-token')

# CSV'den oluştur
result = uploader.create_from_csv(
    'event_log.csv',
    'Sipariş Süreci',
    'CaseID',
    'Activity',
    'Timestamp',
    resource_col='User'
)
print(f"Oluşturulan veri seti: {result['datasetId']}")
print(f"Vaka sayısı: {result['caseCount']}, Olay sayısı: {result['eventCount']}")

# Tüm veri setlerini listele
datasets = uploader.list_datasets()
for ds in datasets['datasets']:
    print(f"- {ds['datasetName']} ({ds['datasetId']})")

JavaScript/Node.js

const TENANT_ID = '12345678-1234-1234-1234-123456789012';
const PROJECT_ID = '87654321-4321-4321-4321-210987654321';
const BASE_URL = 'https://your-mindzie-instance.com';

class DatasetUploader {
  constructor(token) {
    this.token = token;
  }

  async createFromCsv(file, datasetName, caseIdCol, activityCol, timeCol, options = {}) {
    const url = `${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/dataset/csv`;

    const formData = new FormData();
    formData.append('file', file);
    formData.append('datasetName', datasetName);
    formData.append('caseIdColumn', caseIdCol);
    formData.append('activityNameColumn', activityCol);
    formData.append('activityTimeColumn', timeCol);
    formData.append('cultureInfo', options.culture || 'en-US');

    if (options.resourceColumn) {
      formData.append('resourceColumn', options.resourceColumn);
    }
    if (options.startTimeColumn) {
      formData.append('startTimeColumn', options.startTimeColumn);
    }

    const response = await fetch(url, {
      method: 'POST',
      headers: { 'Authorization': `Bearer ${this.token}` },
      body: formData
    });

    if (response.ok) {
      return await response.json();
    } else {
      throw new Error(`Yükleme başarısız: ${await response.text()}`);
    }
  }

  async listDatasets() {
    const url = `${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/dataset`;
    const response = await fetch(url, {
      headers: { 'Authorization': `Bearer ${this.token}` }
    });
    return await response.json();
  }
}

// Kullanım (tarayıcı)
const uploader = new DatasetUploader('your-auth-token');
const fileInput = document.getElementById('csvFile');

fileInput.addEventListener('change', async (e) => {
  const file = e.target.files[0];

  const result = await uploader.createFromCsv(
    file,
    'Veri Setim',
    'CaseID',
    'Activity',
    'Timestamp',
    { resourceColumn: 'User' }
  );

  console.log(`Oluşturuldu: ${result.datasetId}`);
  console.log(`Vakalar: ${result.caseCount}, Olaylar: ${result.eventCount}`);
});

Yanıt Alanları

Alan Tip Açıklama
datasetId GUID Oluşturulan veri setinin ID'si
caseCount integer İçe aktarılan benzersiz vaka sayısı
eventCount integer İçe aktarılan toplam olay sayısı
invalidValueCount integer Karşılaşılan geçersiz değer sayısı
skippedRowsCount integer Hatalar nedeniyle atlanan satır sayısı
errors array Hata mesajları listesi
rowIssues array Satır düzeyindeki sorunlar hakkında detaylar
statusCode integer HTTP durum kodu

En İyi Uygulamalar

  • Sütun Adlarını Doğrulayın: Sütun adlarının tam olarak eşleştiğinden emin olun (büyük/küçük harf duyarlı)
  • Kültür Ayarlarını Kontrol Edin: Tarih/sayı formatları için uygun kültürü kullanın
  • Büyük Dosya İşleyin: 1GB'a yaklaşan dosyalar için yükleme ilerlemesini izleyin
  • Satır Sorunlarını İnceleyin: Veri kalitesi problemleri için rowIssues dizisini kontrol edin
  • Benzersiz Veri Seti İsimleri: Veri seti isimleri projede benzersiz olmalıdır