Transformations

Manufacturing Data Engine (MDE) menyediakan cara mudah untuk melakukan pemrosesan pasca-pemrosesan pesan selama penyerapan dan menghasilkan tag dan catatan turunan baru dari pesan input. Post-prosesor ini disebut transformasi. Transformasi ini dapat dikaitkan dengan jenis tertentu dan menghasilkan pesan baru yang kemudian dimasukkan kembali di MDE. Transformasi adalah pipeline Dataflow bawaan dan dapat dikonfigurasi menggunakan parameter transformasi tertentu.

MDE 1.3 dan versi yang lebih baru menyediakan dua transformasi default:

  • Perubahan Peristiwa Grup
  • Mode jendela

Transformasi diaktifkan di tingkat jenis. Hal ini berarti semua tag yang termasuk dalam jenis tersebut akan diubah. Jenis dapat dikaitkan dengan nol, satu, atau lebih dari satu transformasi. Asosiasi antara jenis dan transformasi tertentu dapat disiapkan di antarmuka web dan menggunakan API konfigurasi. Jenis dapat dikaitkan dengan transformasi kapan saja dan asosiasi tersebut juga dapat dihapus jika tidak lagi diperlukan.

Transformasi mungkin memerlukan parameter transformasi untuk menentukan perilaku spesifiknya. Parameter transformasi khusus untuk setiap jenis transformasi dan dapat berbeda dari satu transformasi ke transformasi lainnya.

Nilai parameter transformasi tertentu untuk transformasi tertentu juga ditetapkan di tingkat jenis. Jenis yang berbeda dapat menggunakan nilai parameter yang berbeda dan menggunakan transformasi yang sama secara berbeda.

Transformasi menerima semua pesan yang dipetakan ke jenis sebagai input saat transformasi aktif. Setiap pesan diproses oleh prosesor transformasi di Dataflow.

Output dari transformasi apa pun adalah pesan JSON mentah yang diserap di topik landing awal. MDE menyediakan paket konfigurasi unik dengan setiap transformasi. Paket konfigurasi ini harus diterapkan ke MDE jika Anda berencana menggunakan transformasi. Paket konfigurasi membuat serangkaian class pesan, parser, jenis, dan koleksi bucket metadata. Entitas konfigurasi ini memungkinkan MDE mengidentifikasi dan memproses pesan output transformasi ke dalam jenis tertentu. Jenis khusus transformasi menyimpan informasi yang dikeluarkan oleh transformasi. Bucket ini juga dikaitkan dengan Bucket Metadata transformasi tertentu yang menyimpan informasi referensi tentang tag atau Rekaman yang diubah aslinya.

Dua jenis yang disediakan untuk memproses pesan mentah yang dihasilkan oleh setiap transformasi adalah sebagai berikut:

  • group-event-change-records: Jenis tujuan untuk pesan output dari transformasi perubahan peristiwa grup.
  • window-transformation-records: Jenis tujuan untuk pesan output transformasi windowing.

Transformasi perubahan acara grup

Transformasi ini memantau setiap kolom dalam tag atau grup tag dan membuat peristiwa setiap kali nilai yang dipantau berubah di salah satu tag tersebut. Transformasi ini dapat dikaitkan dengan jenis arketipe apa pun. Transformasi akan muncul di antarmuka web sebagai eventChange.

Transformasi ini memancarkan pesan yang diuraikan ke jenis CONTINUOUS_DATA_SERIES tertentu bernama group-event-change-records yang disediakan dalam paket konfigurasi terkait. Jenis ini berisi waktu mulai dan waktu berakhir periode antara perubahan nilai serta nilai sebelumnya, nilai saat ini, dan nama tag yang memicu perubahan.

Anda dapat menentukan grup tag dengan jenis yang sama untuk dipantau bersama. Anda dapat memilih kriteria utama untuk menentukan cara mengelompokkan tag. Semua tag yang memiliki nilai kunci yang sama dipantau bersama-sama. Nilai key dapat berupa elemen proto tag, termasuk kolom data dan elemen metadata.

Agar transformasi berfungsi untuk setiap tag, kunci disetel ke TagName.

Parameter

Dua parameter transformasi yang diperlukan untuk mengonfigurasi transformasi ini adalah sebagai berikut:

  1. Ekspresi Kunci: Ditampilkan di antarmuka web sebagai keyExpression. Menentukan ekspresi yang akan digunakan untuk mengelompokkan tag. Semua tag yang memiliki ekspresi kunci dengan nilai yang sama akan dipantau bersama. Transformasi memancarkan peristiwa perubahan nilai setiap kali perubahan terdeteksi di salah satu tag tersebut. Nilai dibandingkan dengan nilai sebelumnya dari tag yang sama, tetapi peristiwa dipicu saat salah satu tag berubah. Ekspresi kunci ditentukan sebagai ekspresi SpEL dan dapat menggunakan salah satu kolom yang tersedia dalam proto tag. Misalnya, untuk memantau satu tag saja berdasarkan nama tag, ekspresi SpEL akan ditentukan sebagai:

    #message['tagName']
    

    Atau, untuk mengelompokkan tag berdasarkan kolom metadata umum, seperti nama mesin (dengan asumsi ada bucket asset-hierarchy dengan atribut bernama machine-name di dalamnya), ekspresinya dapat ditetapkan ke:

    #message['metadata']['asset-hierarchy']['machine-name']
    
  2. Ekspresi Nilai: Ditampilkan di antarmuka web sebagai valueExpression. Menentukan kolom nilai yang dipantau oleh transformasi untuk memancarkan peristiwa perubahan baru. Nilai ini juga ditentukan sebagai ekspresi SpEL. Ekspresi dapat menggunakan kolom apa pun dari struktur proto tag. Output ekspresi harus berjenis String agar berfungsi dengan benar.

    Misalnya, untuk memantau kolom value di bagian Data dari proto tag, Ekspresi Nilai dapat ditetapkan ke:

    #message['data']['numeric'].toString()
    

Pesan Output

Konten Pesan Output yang dihasilkan oleh transformasi perubahan peristiwa grup memberikan detail peristiwa yang terdeteksi. Atribut spesifik yang tersedia dalam pesan output adalah:

  1. TagName: Transformasi membuat peristiwa di Tagname yang sesuai dengan nilai Ekspresi Kunci dan sufiks "_event_change". Jika Ekspresi Kunci ditentukan sebagai TagName individu, tag turunan akan menjadi "TagName_event_change".
  2. Objek Stempel Waktu Berkelanjutan Perubahan Acara: berisi stempel waktu awal (atribut event_timestamp_start) dan akhir (atribut event_timestamp_end) acara. Selain itu, objek ini juga berisi durasi (atribut duration) acara sebagai double.
  3. Objek Data Pesan Perubahan Peristiwa: Berisi nama tag yang nilainya berubah selama peristiwa (atribut changed_tags) dan daftar tag yang cocok dengan kriteria pengelompokan pada saat peristiwa dipancarkan (atribut contributing_tags). Keduanya dapat berisi lebih dari satu tag per pesan.
  4. Objek Perubahan Nilai Tag: Nama (atribut tag_name), nilai lama (atribut old_expression_value), nilai baru (atribut new_expression_attribute), dan pesan (atribut message_id) yang memicu peristiwa perubahan status.
  5. Objek Pesan Nilai yang Berubah (di v1.3.6 dan yang lebih baru): Berisi pesan yang memicu perubahan peristiwa.

Lihat skema tertentu di bagian referensi.

Transformasi windowing

Transformasi ini menerapkan fungsi Windowing ke semua tag dari suatu jenis. Windowing mengacu pada ringkasan beberapa data selama jangka waktu tertentu dalam satu data. Transformasi windowing dapat dikaitkan dengan jenis arketipe apa pun. Fitur ini dapat meringkas rekaman tag dari 1 menit hingga 60 menit. Hasil transformasi adalah pesan mentah yang berisi nilai ringkasan untuk ekspresi nilai selama jangka waktu yang dipilih.

Transformasi ini dapat diterapkan beberapa kali ke jenis yang sama selama Id setiap transformasi windowing (sebagaimana ditentukan dalam parameternya) unik dalam jenis. Anda dapat menambahkan transformasi windowing menggunakan antarmuka web, tetapi Anda harus menggunakan API untuk menambahkan beberapa transformasi windowing ke jenis tertentu.

Transformasi menghasilkan tag turunan dari jenis yang diberikan (bernama window-transformation-records) yang berisi ringkasan semua data yang diterima selama jangka waktu tersebut untuk Tag tersebut. Transformasi ini beroperasi di tingkat tag: transformasi ini akan membuat tag ringkasan untuk setiap tag jenis yang terkait dengan transformasi tersebut. Nama tag terdiri dari Tagname asli dan akhiran -window-stats serta id dari transformasi windowing.

Parameter

Transformasi ini memerlukan tiga parameter untuk beroperasi:

  1. Durasi Jendela: tersedia di antarmuka web sebagai durationMinutes. Nilai ini mengacu pada durasi Jendela yang akan diterapkan dalam menit. Misalnya, nilai 1 akan menghasilkan deret waktu turunan dengan resolusi 1 menit.
  2. ID Jendela: tersedia di antarmuka web sebagai id. Menetapkan ID unik ke setiap transformasi windowing jenis untuk memungkinkan lebih dari satu diterapkan secara paralel. ID dapat berupa String apa pun.
  3. Ekspresi Nilai: tersedia di antarmuka web sebagai valueExpression. Ini adalah ekspresi SpEL yang diterapkan ke proto tag untuk menghasilkan Nilai numerik yang akan diringkas oleh transformasi windowing. Misalnya, jika Anda perlu menggunakan kolom nilai tag numerik generik, ekspresi valueExpression dapat ditentukan sebagai:

    #message['data']['numeric']
    

Pesan output

Transformasi memancarkan satu pesan untuk setiap jangka waktu yang ditentukan oleh Parameter transformasi durationMinutes. Pesan output berisi atribut berikut:

  1. TagName: Nama tag deret waktu turunan. Nilai ini dihasilkan secara otomatis oleh transformasi windowing. Nama ini dibentuk menggunakan TagName asli dan akhiran -window-stats serta id dari transformasi windowing. Misalnya, untuk TagName yang disebut Temperature dan ID 1, tag turunan akan diberi nama Temperature-window-stats-1.
  2. TimeStamp: Berisi stempel waktu awal dan akhir Jendela (tersedia sebagai atribut event_timestamp_start dan event_timestamp_end).
  3. Statistik Ringkasan Jendela: Berisi semua data ringkasan untuk periode yang mencakup:
    1. Rata-rata: Nilai rata-rata dari semua nilai yang diterima selama periode waktu.
    2. Min: Nilai minimal dari semua nilai yang diterima selama jangka waktu.
    3. Maks: Nilai maksimum dari semua nilai yang diterima selama jangka waktu.
    4. Simpangan Baku: Simpangan baku semua nilai yang diterima selama jangka waktu.
    5. p50: Tingkat keyakinan 50% tidak terlampaui untuk nilai yang diterima selama periode waktu.
    6. p90: Tingkat keyakinan 90% tidak terlampaui untuk nilai yang diterima selama periode waktu.
    7. Jumlah: Ringkasan semua nilai yang diterima selama periode waktu.
    8. Jumlah: Jumlah nilai yang diterima selama jangka waktu.
    9. Delta: Perbedaan antara nilai terakhir dan nilai pertama yang diterima selama periode waktu.

Untuk mengetahui informasi selengkapnya, lihat skema tertentu di bagian Skema Transformasi.