Bagikan melalui


Perintah refresh (TMSL)

Berlaku untuk: SQL Server 2016 dan yang lebih baru Analysis Services Azure Analysis Services Fabric/Power BI Premium

Memproses objek dalam database saat ini.
Refresh selalu berjalan secara paralel kecuali Anda membatasinya dengan perintah Urutan (TMSL).

Anda dapat mengambil alih beberapa properti dari beberapa objek selama operasi refresh data:

  • Ubah properti QueryDefinition dari objek Partisi untuk mengimpor data menggunakan ekspresi filter on-the-fly.

  • Berikan kredensial sumber data sebagai bagian dari perintah Refresh , di properti ConnectionString objek DataSource . Pendekatan ini dapat dianggap lebih aman, karena kredensial disediakan dan digunakan sementara selama durasi operasi, daripada disimpan.

  • Mengambil alih kebijakan refresh inkremental model semantik Power BI default.

Lihat contoh dalam topik ini untuk ilustrasi penimpaan properti ini.

Catatan

Tidak seperti pemrosesan multidimensi, tidak ada penanganan khusus kesalahan pemrosesan untuk pemrosesan tabular.

Minta

Refresh mengambil parameter jenis dan definisi objek.

    {  
        "refresh": {  
            "description": "Parameters of Refresh command of Analysis Services JSON API",  
            "properties": {  
            "type": {  
                "enum": [  
                "full",  
                "clearValues",  
                "calculate",  
                "dataOnly",  
                "automatic",  
                "add",  
                "defragment"  
                ]  
            },  
            "objects": [  

Parameter jenis menetapkan cakupan pada operasi pemrosesan.

Jenis refresh Berlaku untuk Deskripsi
penuh Database
Meja
Partisi
Untuk semua partisi dalam partisi, tabel, atau database yang ditentukan, refresh data dan hitung ulang semua dependen. Untuk partisi perhitungan, hitung ulang partisi dan semua dependennya.
clearValues Database
Meja
Partisi
Hapus nilai dalam objek ini dan semua dependennya.
Menghitung Database
Meja
Partisi
Hitung ulang objek ini dan semua dependennya, tetapi hanya jika diperlukan. Nilai ini tidak memaksa perhitungan ulang, kecuali untuk rumus volatil.
dataOnly Database
Meja
Partisi
Refresh data dalam objek ini dan hapus semua dependen.
automatic Database
Meja
Partisi
Jika objek perlu disegarkan dan dihitung ulang, refresh dan hitung ulang objek dan semua dependennya. Berlaku jika partisi dalam keadaan selain Siap.
tambahkan Partisi Tambahkan data ke partisi ini dan hitung ulang semua dependen. Perintah ini hanya berlaku untuk partisi reguler dan bukan untuk partisi perhitungan.
Defragment Database
Tabel
Defragmentasi data dalam tabel yang ditentukan. Saat data ditambahkan ke atau dihapus dari tabel, kamus setiap kolom bisa tercemari dengan nilai yang tidak lagi ada dalam nilai kolom aktual. Opsi defragment akan membersihkan nilai dalam kamus yang tidak lagi digunakan.

Anda bisa merefresh objek berikut:

Objek database (TMSL) Memproses database.

{  
  "refresh": {  
    "type": "automatic",  
    "objects": [  
      {  
        "database": "AdventureWorksTabular1200"  
      }  
    ]  
  }  
}  

Objek tabel (TMSL) Memproses satu tabel.

{  
  "refresh": {  
    "type": "automatic",  
    "objects": [  
      {  
        "database": "AdventureWorksTabular1200",  
        "table": "Date"  
      }  
    ]  
  }  
}  

Objek partisi (TMSL) Memproses satu partisi dalam tabel.

{  
  "refresh": {  
    "type": "automatic",  
    "objects": [  
      {  
        "database": "AdventureWorksTabular1200",  
        "table": "FactSalesQuota",  
        "partition": "FactSalesQuota"  
      },  
      {  
        "database": "AdventureWorksTabular1200",  
        "table": "FactSalesQuota",  
        "partition": "FactSalesQuota - 2011"  
      }  
    ]  
  }  
}  

Parameter opsional

Untuk model semantik Power BI, parameter berikut dapat ditambahkan ke perintah refresh TMSL untuk mengambil alih perilaku refresh inkremental default:

  • applyRefreshPolicy – Jika tabel memiliki kebijakan refresh bertahap yang ditentukan, applyRefreshPolicy akan menentukan apakah kebijakan diterapkan atau tidak. Jika kebijakan tidak diterapkan, operasi penuh proses akan membuat definisi partisi tidak berubah dan semua partisi dalam tabel akan sepenuhnya di-refresh. Nilai defaultnya adalah benar.

  • effectiveDate – Jika kebijakan refresh bertahap diterapkan, perlu mengetahui tanggal saat ini untuk menentukan rentang jendela bergulir untuk rentang historis dan rentang inkremental. Parameter effectiveDate memungkinkan Anda untuk mengambil alih tanggal saat ini. Ini berguna untuk pengujian, demo, dan skenario bisnis di mana data di-refresh secara bertahap hingga saat ini di masa lalu atau masa depan (misalnya, anggaran di masa depan). Nilai defaultnya adalah tanggal saat ini.

{
  "refresh": {
    "type": "full",

    "applyRefreshPolicy": true,
    "effectiveDate": "12/31/2013",

    "objects": [
      {
        "database": "IR_AdventureWorks", 
        "table": "FactInternetSales" 
      }
    ]
  }
}

Tabel berikut ini memperlihatkan dampak saat applyRefreshPolicy benar (default) pada setiap jenis refresh untuk tabel yang berisi kebijakan refresh bertahap:

Jenis refresh Dampak
penuh Kebijakan diterapkan seperti yang dijelaskan dalam Refresh bertahap di Power BI. Dengan asumsi partisi historis telah dibuat oleh operasi refresh sebelumnya, ringkasan dijelaskan di sini:
- Partisi baru ditambahkan ke rentang inkremental jika diperlukan.
- Jika tidak ada pollingExpression yang didefinisikan untuk deteksi perubahan data, semua partisi dalam rentang inkremental di-refresh secara penuh.
- Jika pollingExpression didefinisikan, itu dievaluasi untuk setiap partisi dalam rentang inkremental. Hanya mereka yang mengembalikan hasil polling yang berbeda dibandingkan dengan operasi refresh sebelumnya yang disegarkan secara penuh.
- Partisi historis tidak disegarkan terlepas dari apakah mereka telah dihapus dari data.
- Partisi historis yang berada di luar jangkauan dihapus.
- Perhitungan ulang partisi dan dependen yang terpengaruh.
clearValues applyRefreshPolicy tidak memengaruhi perilaku.
Menghitung applyRefreshPolicy tidak memengaruhi perilaku.
dataOnly Sama seperti type=full, tetapi tanpa perhitungan ulang partisi dan dependen yang terpengaruh.
automatic Sama seperti type=full, tetapi partisi dalam rentang inkremental di-refresh menggunakan type=automatic.
tambahkan applyRefreshPolicy tidak memengaruhi perilaku.
Defragment applyRefreshPolicy tidak memengaruhi perilaku.

Respons

Mengembalikan hasil kosong saat perintah berhasil. Jika tidak, pengecualian XMLA dikembalikan.

Contoh

Ambil alih ConnectionString dan QueryDefinition partisi.

{
  "refresh": {
    "type": "dataOnly",
    "objects": [
      {
        "database": "AdventureWorksDW2017",
        "table": "DimCustomer"
      }
    ],
    "overrides": [
      {
        "dataSources": [ // Bindings for DataSources​
          {
            "originalObject": {
              "database": "AdventureWorksDW2017",
              "dataSource": "SqlServer localhost"
            },
            "connectionString": "Provider=SQLNCLI11.1;Data Source=.;Persist Security Info=True;User ID=YourSQLLogin;Password=YourPassword;Initial Catalog=AdventureWorksDW2017"
          }
        ],
        "partitions": [ // Bindings for Partitions​
          {
            "originalObject": {
              "database": "AdventureWorksDW2017",
              "table": "DimCustomer",
              "partition": "DimCustomer"
            },
            "source": {
              "query": "SELECT * FROM [dbo].[DimCustomer]"
            }
          }
        ]
      }
    ]
  }
}

Cakupan penimpaan tertentu dengan mengatur parameter jenis ke refresh dataOnly , metadata tetap utuh.

{
  "refresh": {
    "type": "dataOnly",
    "objects": [
      {
        "database": "TMTestDB",
        "table": "Customer"
      },
      {
        "database": "TMTestDB",
        "table": "Sales"
      }
    ],
    "overrides": [
      {
        "scope": {
          "database": "TMTestDB",
          "table": "Sales"
        },
        "dataSources": [
          {
            "originalObject": {
              "dataSource": "SqlServer sqlcldb2 AS_foodmart_2000"
            },
            "connectionString": "Provider=SQLNCLI11;Data Source=sqlcldb2;Initial Catalog=AS_foodmart_2000;Integrated Security=SSPI;Persist Security Info=false"
          }
        ]
      }
    ]
  }
}

Penggunaan (titik akhir)

Elemen perintah ini digunakan dalam pernyataan panggilan Metode Eksekusi (XMLA) melalui titik akhir XMLA, yang diekspos dengan cara berikut:

  • Sebagai jendela XMLA di SQL Server Management Studio (SSMS)

  • Sebagai file input ke cmdlet PowerShell invoke-ascmd

  • Sebagai input ke tugas SSIS atau pekerjaan SQL Server Agent

Anda dapat membuat skrip siap pakai untuk perintah ini dari SSMS. Misalnya, Anda dapat mengklik Skrip dalam kotak dialog Pemrosesan.