Baca dalam bahasa Inggris

Bagikan melalui


Mengkueri data menggunakan MATLAB

MATLAB adalah platform komputasi pemrograman dan numerik yang digunakan untuk menganalisis data, mengembangkan algoritma, dan membuat model. Artikel ini menjelaskan cara mendapatkan token otorisasi di MATLAB untuk Azure Data Explorer, dan cara menggunakan token untuk berinteraksi dengan kluster Anda.

Prasyarat

Pilih tab untuk sistem operasi yang digunakan untuk menjalankan MATLAB.

  1. Pasang JDK 8 dan Maven.

  2. Kloning antarmuka MATLAB untuk repositori Azure Services:

    git clone https://github.com/mathworks-ref-arch/matlab-azure-services.git
    
  3. Bangun jar MATLAB Azure SDK:

    cd matlab-azure-services/Software/Java
    mvn clean package
    

    Build harus menghasilkan file: Software/MATLAB/lib/jar/azure-common-sdk-0.2.0.jar.

  4. Di studio MATLAB, muat file jar dan tambahkan ke jalur kelas statis java:

    edit(fullfile(prefdir,'javaclasspath.txt'));
    
  5. Dalam file jalur kelas statis java, tambahkan entri yang sesuai dengan file jar:

    (full-path)/matlab-azure-services/Software/MATLAB/lib/jar/azure-common-sdk-0.2.0.jar
    
  6. Mulai ulang IDE MATLAB. Setelah dimuat ulang, jalankan skrip startup.m yang tersedia di matlab-azure-services\Software\MATLAB\startup.m. Ini memastikan semua fungsi prasyarat disiapkan untuk akses ke layanan Azure. Output akan terlihat sebagai berikut:

    >> startup
    Adding Azure Paths
    ------------------
    Adding: matlab-azure-services/Software/MATLAB/app
    Adding: matlab-azure-services/Software/MATLAB/app/functions
    Adding: matlab-azure-services/Software/MATLAB/app/system
    Adding: matlab-azure-services/Software/MATLAB/lib
    Adding: matlab-azure-services/Software/MATLAB/config
    Skipping: matlab-azure-services/Software/Utilities
    Checking the static Java classpath for: matlab-azure-services/Software/MATLAB/lib/jar/azure-common-sdk-0.2.0.jar
    Found: azure-common-sdk-0.2.0.jar
    

Melakukan autentikasi pengguna

Dengan autentikasi pengguna, pengguna diminta untuk masuk melalui jendela browser. Setelah berhasil masuk, token otorisasi pengguna diberikan. Bagian ini memperlihatkan cara mengonfigurasi alur masuk interaktif ini.

Untuk melakukan autentikasi pengguna:

  1. Buat file Auth.json di direktori kerja Anda dengan kredensial yang relevan. KustoClientAppId yang dikembalikan dari https://<adx-cluster>.kusto.windows.net/v1/rest/auth/metadata perlu diganti dengan nilai ClientId di bawah ini:

    {
        "AuthMethod": "InteractiveBrowser",
        "TenantId" : "<AAD Tenant / Authority ID for the login>",
        "ClientId" : "<Client ID>",
        "RedirectUrl": "http://localhost:8675"
    }
    
  2. Kueri kluster Anda sebagai berikut:

    % References the credential file created in the previous step
    credentials = configureCredentials('Auth.json');
    
    % Point the scopes to the Azure Data Explorer cluster that we want to query
    request = azure.core.credential.TokenRequestContext();
    request.addScopes('<https://adx-cluster-changeme.kusto.windows.net/.default>');
    token=credentials.getToken(request);
    
    % Prepare to query the cluster
    options=weboptions('HeaderFields',{'RequestMethod','POST';'Accept' 'application/json';'Authorization' ['Bearer ', token.getToken()]; 'Content-Type' 'application/json; charset=utf-8'; 'Connection' 'Keep-Alive'; 'x-ms-app' 'Matlab'; 'x-ms-client-request-id' 'Matlab-Query-Request'});
    
    % The DB and KQL variables represent the database and query to execute
    querydata = struct('db', "<DB>", 'csl', "<KQL>");
    querryresults  = webwrite('<https://adx-cluster-changeme.kusto.windows.net/v2/rest/query>', querydata, options);
    
    % The results row can be extracted as follows
    results=querryresults{3}.Rows
    

Melakukan autentikasi aplikasi

Otorisasi aplikasi Microsoft Entra dapat digunakan untuk skenario di mana masuk interaktif tidak diinginkan dan eksekusi otomatis diperlukan.

Untuk melakukan autentikasi aplikasi:

  1. Buat file Auth.json di direktori kerja Anda dengan kredensial yang relevan:

    {
        "AuthMethod": "ClientSecret",
        "TenantId" : "<AAD Tenant / Authority ID for the login>",
        "ClientId" : "<Client ID of the Azure AD application>",
        "ClientSecret": "<Client Key of the Azure AD application>",
        "RedirectUrl": "http://localhost:8675"
    }
    
  2. Kueri kluster Anda sebagai berikut:

    % References the credential file created in the previous step
    credentials = configureCredentials('Auth.json');
    
    % Point the scopes to the Azure Data Explorer cluster that we want to query
    request = azure.core.credential.TokenRequestContext();request.addScopes('<https://adx-cluster-changeme.kusto.windows.net/.default>');
    token=credentials.getToken(request);
    
    % Prepare to query the cluster
    options=weboptions('HeaderFields',{'RequestMethod','POST';'Accept' 'application/json';'Authorization' ['Bearer ', token.getToken()]; 'Content-Type' 'application/json; charset=utf-8'; 'Connection' 'Keep-Alive'; 'x-ms-app' 'Matlab'; 'x-ms-client-request-id' 'Matlab-Query-Request'});
    
    % The DB and KQL variables represent the database and query to execute
    querydata = struct('db', "<DB>", 'csl', "<KQL>");
    querryresults  = webwrite('<https://adx-cluster-changeme.kusto.windows.net/v2/rest/query>', querydata, options);
    
    % The results row can be extracted as follows
    results=querryresults{3}.Rows