Bagikan melalui


Mengkueri beberapa sumber data di Fabric API untuk GraphQL

Salah satu keuntungan utama Fabric API untuk GraphQL adalah kemampuan untuk mengekspos beberapa sumber data—seperti lakehouse, gudang, dan database—melalui satu titik akhir API terpadu. Ini berarti aplikasi Anda dapat mengambil data dari sumber yang berbeda dalam satu kueri GraphQL, menghilangkan kebutuhan untuk terhubung ke beberapa API atau database secara terpisah.

Misalnya, Anda mungkin memiliki data pelanggan dalam satu gudang dan data inventori di lakehouse lain. Alih-alih melakukan dua panggilan API terpisah, Anda dapat mengkueri kedua sumber secara bersamaan melalui API GraphQL Anda, mengurangi overhead jaringan dan menyederhanakan kode aplikasi Anda.

Cara kerja kueri multi-sumber

Saat Anda mengajukan kueri GraphQL yang mencakup beberapa sumber data, API secara otomatis menyebarkan permintaan individual ke setiap sumber data secara paralel dan kemudian menggabungkan hasilnya menjadi satu respons. Pendekatan ini:

  • Mengurangi perjalanan pulang pergi: Aplikasi Anda membuat satu permintaan alih-alih beberapa panggilan berurutan
  • Meningkatkan performa: Eksekusi paralel berarti waktu respons keseluruhan yang lebih cepat
  • Menyederhanakan kode klien: Anda bekerja dengan satu antarmuka API terlepas dari tempat data disimpan

Penting

Kueri multi-sumber memiliki batasan berikut:

  • Anda tidak dapat membuat hubungan antara jenis yang mencakup sumber data yang berbeda. Hubungan hanya berfungsi dalam satu sumber data.
  • Permintaan individual ke setiap sumber data dijalankan secara paralel tanpa urutan yang dijamin.
  • Setiap permintaan ke sumber data bersifat independen—tidak ada transaksi yang mencakup beberapa sumber.

Contoh kueri

Skenario bisnis: Bayangkan Anda membangun dasbor yang menampilkan informasi pelanggan dan status inventaris produk secara berdampingan. Data pelanggan Anda berada di gudang penjualan (ContosoSales), sementara inventarisasi produk Anda dikelola di lakehouse terpisah (ContosoInventory) yang diperbarui oleh sistem rantai pasokan Anda. Tanpa dukungan multi-sumber, Anda harus melakukan dua panggilan API terpisah, mengelola dua koneksi yang berbeda, dan menggabungkan data sendiri dalam kode aplikasi Anda.

Dengan Fabric API untuk GraphQL, Anda dapat mengambil data dari kedua sumber dalam satu kueri:

query {
  customers (first: 1) {
    items {
      FirstName
      LastName
    }
  }
  inventories (first: 1) {
    items {
      Name
    }
  }
}

Permintaan tunggal ini mengambil rekaman pelanggan dari sumber data ContosoSales dan item inventarisasi dari sumber data ContosoInventory secara paralel, menggabungkannya ke dalam satu respons. Dasbor Anda mendapatkan semua data yang dibutuhkan dengan satu panggilan API, bukan dua.

Output untuk permintaan adalah:

{
  "data": {
    "customers": {
      "items": [
        {
          "FirstName": "Orlando",
          "LastName": "Gee"
        }
      ]
    },
    "inventories": {
      "items": [
        {
          "Name": "AWC Logo Cap"
        }
      ]
    }
  }
}

Struktur respons mencerminkan struktur kueri. data Di dalam objek, Anda memiliki dua bidang tingkat atas (customers dan inventories) yang sesuai dengan dua kueri yang Anda buat. Setiap bidang berisi items array dengan hasil aktual. Item customers memiliki properti seperti FirstName dan LastName, sementara inventories item memiliki properti seperti —persis seperti Nameyang diminta dalam kueri.

Ini adalah tampilan kueri saat Anda menjalankan permintaan ini:

Cuplikan layar editor memperlihatkan kueri yang mencakup dua sumber data.