# Veri hedefi türleri

> Veri hedefi türleri, her türün okuduğu parametreler, değerlerin nasıl gönderildiği ve Denetle ile Bağlantıyı test et eylemlerinin neyi doğruladığı.

Kaynak: https://proxus.io/tr/docs/reference/outbound-targets

Veri hedefi, bir cihazın değerlerini Proxus dışındaki bir sisteme gönderir. Bu sayfada her hedef türü, türün okuduğu
parametreler ve Edge Gateway'in hedefe veriyi nasıl gönderdiği listelenir. Hedef oluşturmak için
[Veri hedefleri](https://proxus.io/tr/docs/connect/outbound-targets) sayfasına bakın.

## Her hedefin alanları

| Alan | Anlamı |
| --- | --- |
| **Profil adı** | Benzersiz bir ad. |
| **Tür** | Hedefin türü. Aşağıdaki tablolardaki türlerden biri seçilir. **SYSTEM INTERNAL DB** hedefinde değiştirilemez. |
| **Aktarım stratejisi** | **Doğrudan aktar**: her okuma tüm değerleriyle gönderilir. **Değiştiğinde**: yalnızca değişen değerler gönderilir; hiçbir değerin değişmediği okumada gönderim yapılmaz. **Yalnızca işlem akışları**: cihazın normal gönderiminden bu hedefe veri gitmez; hedefe yalnızca onu adıyla seçen işlem akışları veri gönderir. |
| **Parametreler** | Anahtar ve değer satırları. Her türün okuduğu anahtarlar aşağıda listelenmiştir. `Password`, `Token` ya da `Secret` gibi anahtarların değerleri maskelenir. |
| **Durum** | Edge Gateway'lerin bildirdiği durum: `Hazır`, `Çalışıyor`, `Kısmen çalışıyor`, `Hata` ya da `Durduruldu`. Hedefi hiçbir cihaz kullanmıyorsa `Kullanılmıyor`, henüz bildirim gelmediyse `Bilinmiyor` görünür. Yanında **Son başarılı gönderim** ve **Son hata** alanları (zaman ve hata mesajı) yer alır. |
| **Kullanan cihazlar** | Bu hedefe veri gönderen cihaz sayısı. |

Cihazı okuyan Edge Gateway, o cihazın değerlerini hedeflerine de kendisi gönderir. Bu nedenle hedefe, o Edge Gateway'in
bulunduğu ağdan erişilebilmelidir.

## Denetle ve Bağlantıyı test et

Kayıtlı bir hedefte **Denetle**'ye tıklayın. Hedefin parametreleri denetlenir ve Edge Gateway'lerin bildirdiği çalışma
durumu gösterilir.

- Parametre denetimi bulguları üç grupta listeler. **Hatalar**, hedefin çalışmasını engelleyen sorunlardır; örneğin
  gerekli bir anahtar eksiktir. **Uyarılar** ve **Notlar** ise türün okumadığı anahtarları ve boş bırakıldığı için
  varsayılan değeri kullanılacak anahtarları gösterir. Anahtar adı bir yazım hatasına benziyorsa doğru ad önerilir.
- Ardından **Bağlantıyı test et**'e tıklayın. Merkez sunucu ya da seçtiğiniz Edge Gateway hedefe bağlanmayı dener ve şu
  sonuçlardan birini bildirir: `Bağlandı` (hedef kimlik bilgilerini kabul etti), `Erişilebilir` (adreste yanıt veren
  bir servis var, kimlik bilgileri doğrulanmadı) ya da `Başarısız` (nedeniyle birlikte). Bağlantı testi olmayan
  türlerde bu durum bildirilir. Test sırasında hedefe veri yazılmaz.

Aşağıdaki tablolarda **Test** sütunu, bağlantı testinin her türde neyi doğruladığını gösterir.

## Mesajlaşma sistemleri ve veri akışı

| Tür | Parametreler (gerekenler kalın) | Test |
| --- | --- | --- |
| **MQTT** | **`BrokerHost`**, `BrokerPort` (1883), `Username`, `Password`, `UseTls` (false), `TlsVersion` (Tls12), `CertificateThumbprint`, `ServerCertificateThumbprint`, `Topic` (boşsa `proxus_device_data`), `QualityOfServiceLevel` (1), `MaxBatchSize` (50), `MessageBatchTimeoutMs` (500), `ConnectionTimeoutSec` (5), `MaxReconnectAttempts` (10), `InitialReconnectDelayMs` (1000), `MaxReconnectDelayMs` (30000), `HealthCheckIntervalSec` (10) | Bağlanır ve MQTT sunucusunun yanıtını denetler. |
| **SparkplugB** | `BrokerHost` (boşsa `localhost`), `BrokerPort` (1883), `Username`, `Password`, `GroupId` (`ProxusGroup`), `EdgeNodeId`, `ScadaHostIdentifier` (`scada1`), `UseTls` (false), `UseWebSocket` (false), `TlsVersion`, `CertificateThumbprint`, `ServerCertificateThumbprint`, `ReconnectInterval` (5 s) | Bağlanır ve MQTT sunucusunun yanıtını denetler. |
| **Kafka mesajlaşma sistemi** | `BootstrapServers` (boşsa `localhost:9092`), `Topic` (boşsa `proxus_device_data`), `ClientId`, `SecurityProtocol`, `SaslMechanism`, `SaslUsername`, `SaslPassword` | Kümeden sunucu listesini ister ve konunun var olup olmadığını denetler. |
| **RabbitMQ mesajlaşma sistemi** | `HostName`, `UserName`, `Password` (boşsa sırasıyla `localhost`, `guest`, `guest`), `Port` (5672), `VirtualHost` (`/`), `Exchange`, `RoutingKey` | Sanal sunucuda oturum açar ve exchange'i denetler. |
| **Redis veritabanı** | `Host` (boşsa `localhost`), `Port` (6379), `Password`, `Database` (0), `DataType` (`hash`) | Oturum açar ve `PING` gönderir. |

MQTT hedefinde `Username` ve `Password` yalnızca ikisi birlikte doluysa kullanılır.

## Bulut servisleri

| Tür | Parametreler (gerekenler kalın) | Test |
| --- | --- | --- |
| **AWS IoT Core** | **`EndPoint`**, **`CertificateThumbprint`** (nesnenin [Sertifika deposundaki](https://proxus.io/tr/docs/administer/certificates) cihaz sertifikası; **İstemci sertifikası** olarak seçilir), **`ClientId`**, `Port` (8883), `UseTls` (true), `ServerCertificateThumbprint` (Amazon Root CA 1), `Topic` (boşsa `proxus_device_data`) ve MQTT hedefindeki paketleme ve yeniden bağlanma anahtarları | Sertifikayla bağlanır. |
| **Azure IoT** | **`HostName`** (örneğin `my-hub.azure-devices.net`), **`DeviceId`**, **`SharedAccessKey`**, `OperationTimeoutMs` (30000), `RetryMaxAttempts` (5), `RetryMinBackoffMs` (200), `RetryMaxBackoffMs` (5000), `RetryDeltaBackoffMs` (200) | Cihaz bağlantısını açar. |
| **Azure Data Lake Gen2** | **`AccountName`**, **`FileSystem`**, **`TenantId`**, **`ClientId`**, **`ClientSecret`**, `Directory`, `PathPattern`, `Format` (`parquet`, `json` ya da `csv`), `CsvDelimiter`, `CreateIfNotExists`, `DefaultRegion`, `DefaultSubject`, `FlushIntervalSeconds` (30), `MinBatchCount` (5000), `MinBatchBytes` (16 MiB), `MaxBatchCount` (100000), `MaxBatchBytes` (64 MiB), `MaxWaitSeconds` (300) | Oturum açar ve dosya sisteminin var olduğunu denetler. |

## Zaman serisi ve analitik veritabanları

| Tür | Parametreler (gerekenler kalın) | Test |
| --- | --- | --- |
| **ClickHouse** | `Host` (boşsa `localhost`), `Port` (8123, HTTP), `Database`, `Table`, `Username`, `Password`, `TTLExpression`, `LogTTLExpression`, `WriteIntervalSeconds` (1) | `SELECT 1` sorgusunu çalıştırır. |
| **InfluxDB** | `Url` (boşsa `http://localhost:8086`), `Token`, `Organization` (`proxus`), `Bucket` (`proxus`), `Measurement` (`proxusdevicedata`) | Erişim anahtarını denetler ve bucket'ın var olup olmadığına bakar. Her değer, okunduğu zamanla tek bir nokta olarak yazılır ve `deviceName`, `deviceId` etiketlerini taşır; sayılar ve mantıksal değerler kendi tipleriyle yazılır. |
| **TDengine** | `Host` (boşsa `localhost`), `Port` (6041), `Username` (`root`), `Password` (`taosdata`), `Database`, `StableName`, `Keep` (365), `Duration` (10), `Buffer` (256) | Oturum açar. |
| **Splunk** | `Url` (HTTP Event Collector adresi), `Token`, `UseAcknowledgment` (false). HTTPS'i `Url` belirler (`https://`); eski `UseSSL` parametresinin etkisi yoktur. Her olay değerin okunduğu zamanı taşır; kesintiden sonra giden değerler Splunk'ta doğru zamana yerleşir | Collector'ın çalışma durumunu ve erişim anahtarını denetler. |

## REST API

| Tür | Parametreler (gerekenler kalın) | Test |
| --- | --- | --- |
| **REST API** | **`Uri`** (`http` ya da `https` ile başlayan tam adres), `AuthenticationType`, `Username`, `Password`, `Token`, `APIKey` | `HEAD` isteği gönderir. |

Her okuma, `Uri` adresine JSON içerikli bir `POST` isteğiyle gönderilir. Hangi kimlik bilgisinin kullanılacağını
`AuthenticationType` belirler: `Basic` seçilirse `Username` ve `Password`, `Token` seçilirse
`Authorization: Bearer <Token>` başlığı, `APIKey` seçilirse `X-Api-Key` başlığı gönderilir. `Bearer` ve `OAuth` da
dahil olmak üzere başka bir değer girilirse kimlik bilgisi gönderilmez. REST API hedefi, işlem akışındaki **API çağır**
düğümünden de çağrılabilir. Hedefi bu amaçla kullanacaksanız stratejisini **Yalnızca işlem akışları** olarak ayarlayın.

## İlişkisel veritabanları

Edge Gateway, ihtiyaç duyduğu tabloyu ilk yazma sırasında kendisi oluşturur.

| Tür | Parametreler (hepsi gerekli) | Test |
| --- | --- | --- |
| **Microsoft SQL Server** | `Server`, `User`, `Password`, `Database`; isteğe bağlı olarak `TrustServerCertificate`, `Encrypt` | Bağlantı açar. |
| **PostgreSQL veritabanı** | `Server`, `User`, `Password`, `Database`; isteğe bağlı olarak `Port` | Bağlantı açar. |
| **MySQL veritabanı** | `Server`, `User`, `Password`, `Database`; isteğe bağlı olarak `Port` | Bağlantı açar. |
| **Oracle veritabanı** | `Server` (veri kaynağı ya da TNS adı), `User`, `Password` | Bağlantı açar. |
| **Firebird veritabanı** | `Server`, `User`, `Password`, `Database` | Bağlantı açar. |
| **Sistem veritabanı** | Yok | Yok. Bu hedef, Proxus'un kendi geçmiş veri deposudur (**SYSTEM INTERNAL DB**). |

## Bu sürümde kullanılamayan türler

Aşağıdaki türler tür listesinde görünür, ancak bu sürümde çalışmaz:

| Tür | Neden |
| --- | --- |
| **IBM DB2**, **SAP HANA**, **SQLite veritabanı**, **VistaDB**, **Advantage Database**, **Adaptive Server Enterprise**, **SQL Anywhere**, **Pervasive veritabanı** | Edge Gateway'de bu veritabanlarının sürücüsü bulunmadığı için yazma başarısız olur. |
| **Microsoft Access** | Yalnızca Windows'ta çalışan bir sürücü gerekir; Edge Gateway'de bu sürücü yoktur. |
| **XML dosyası** | Dosya salt okunur açıldığı için hiçbir şey yazılamaz. |

Bu veritabanlarından birine yazmanız gerekiyorsa değerleri desteklenen bir hedefe gönderin ya da yazma işini bir
[fonksiyonla](https://proxus.io/tr/docs/develop/functions-sdk) yapın.

## TLS parametreleri

Her TLS bağlantısında sunucu doğrulanır. Sunucunun sertifikası adresle eşleşmeli ve güvenilen bir kök sertifikaya
dayanmalıdır. Güvenilen kök olarak, hedef için [Sertifika deposunda](https://proxus.io/tr/docs/administer/certificates) seçilen
sunucu sertifikası ya da işletim sisteminin kök sertifikaları kullanılır. Hiçbir hedef tanımadığı bir sertifikayı
kabul etmez; **Bağlantıyı test et** de aynı doğrulamayı yapar. Parmak izlerini Sertifika deposundan kopyalayın. Edge Gateway
sertifikaları her gönderimde depodan okur. Bu nedenle sertifika yenilendiğinde ya da değiştirildiğinde hedefte bir
değişiklik yapmanız gerekmez.

| Tür | TLS ayarları |
| --- | --- |
| **MQTT**, **AWS IoT Core**, **SparkplugB** | Parametre formundaki **Güvenilen sunucu sertifikası** alanı. Depodaki herhangi bir CA ya da sunucu sertifikası seçilebilir; Proxus Platform CA da bunlara dahildir. İstemci sertifikası **Sertifikalar** ile yüklenir. |
| **Kafka mesajlaşma sistemi** | `SecurityProtocol` değeri `Ssl` ya da `SaslSsl` ise: `CertificateThumbprint` (istemci sertifikası), `ServerCertificateThumbprint` (güvenilen CA). Sunucunun ana bilgisayar adı doğrulanır. |
| **RabbitMQ mesajlaşma sistemi** | `UseTls`, `CertificateThumbprint`, `ServerCertificateThumbprint`. Varsayılan TLS portu 5671'dir. |
| **Redis veritabanı** | `UseTls`, `CertificateThumbprint`, `ServerCertificateThumbprint`. |
| **ClickHouse** | `UseTls`, `CertificateThumbprint`, `ServerCertificateThumbprint`. Varsayılan TLS portu 8443'tür. |
| **REST API**, **InfluxDB**, **Splunk** | `https` ile başlayan adresler doğrulanır. `CertificateThumbprint` ve `ServerCertificateThumbprint` isteğe bağlıdır. |
| **TDengine** | `UseTls` (işletim sisteminin kök sertifikalarıyla doğrulanır). |
| **PostgreSQL veritabanı** | `SslMode`: `Disable`, `Allow`, `Prefer`, `Require`, `VerifyCA` ya da `VerifyFull`. Doğrulama yapan modlarda `ServerCertificateThumbprint` de girilir. |
| **MySQL veritabanı** | `SslMode`: `None`, `Preferred`, `Required`, `VerifyCA` ya da `VerifyFull`. Doğrulama yapan modlarda `ServerCertificateThumbprint` de girilir. |

`SslMode` ayarlanmamışsa veritabanının kendi varsayılan değeri geçerli olur.

**Sertifikalar** ile bir sertifika yüklediğinizde (PEM sertifika ve anahtar, isteğe bağlı olarak CA dosyası) CA
depoya eklenir ve hedefin güvenilen sunucu sertifikası olarak ayarlanır. **AWS IoT Core** için bu CA, Proxus'un
indirdiği Amazon Root CA 1'dir. İnternet erişimi yoksa işletim sisteminin kök sertifikaları kullanılır.

AWS IoT Core dahil her türün adım adım kurulumu [Veri hedeflerine güvenli bağlantı](https://proxus.io/tr/docs/connect/secure-target-connections) sayfasındadır.

## Ara bellek

Çalışan her hedef türü, veriyi Edge Gateway'de kalıcı bir kuyrukta tutar. Veri önce kuyruğa yazılır ve hedef onu
kabul edene kadar kuyrukta kalır. Hedef kapalıyken, yeniden başlarken ya da erişilemezken okunan değerler (Edge Gateway
açılırken okunanlar da dahil) hedef yeniden erişilebilir olduğunda sırayla yazılır.

- Veri, Edge Gateway'in **Ara bellek saklama süresi (saat)** ayarı kadar bekler. Varsayılan süre 48 saat, en uzun süre 30
  gündür.
- Hedefe erişilemediği sürece, durum alanındaki hata mesajı Edge Gateway'in kuyruğunda kaç mesaj beklediğini gösterir.
- Hedefin yanıt verdiği ama hiç kabul etmediği bir kayıt (örneğin sütuna sığmayacak kadar uzun bir değer) birkaç
  denemeden sonra atlanır ve durum alanında belirtilir. Sıradaki veri bu kayıt yüzünden beklemez.
- Veri en az bir kez yazılır. Yazıldığı hâlde onayı kaybolan bir kayıt, nadiren de olsa iki kez yazılabilir.

## Sonraki adımlar

- [Veri hedefleri](https://proxus.io/tr/docs/connect/outbound-targets): hedef oluşturup cihazlara bağlama.
- [Veri sorunlarını giderme](https://proxus.io/tr/docs/troubleshoot/data): hedefe ulaşmayan değerlerin nedenleri.
