Läs på engelska

Dela via


Fråga efter data med MATLAB

MATLAB är en programmerings- och numerisk databehandlingsplattform som används för att analysera data, utveckla algoritmer och skapa modeller. Den här artikeln beskriver hur du hämtar en auktoriseringstoken i MATLAB för Azure Data Explorer och hur du använder token för att interagera med klustret.

Förutsättningar

Välj fliken för operativsystemet som används för att köra MATLAB.

  1. Installera JDK 8 och Maven.

  2. Klona MATLAB-gränssnittet för Azure Services-lagringsplatsen:

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

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

    Bygget bör skapa filen: Software/MATLAB/lib/jar/azure-common-sdk-0.2.0.jar.

  4. I MATLAB Studio läser du in jar-filen och lägger till den i java static-klasssökvägen:

    edit(fullfile(prefdir,'javaclasspath.txt'));
    
  5. Lägg till en post som motsvarar jar-filen i sökvägen till java static class:

    (full-path)/matlab-azure-services/Software/MATLAB/lib/jar/azure-common-sdk-0.2.0.jar
    
  6. Starta om MATLAB IDE. När du har läst in det på nytt kör du start.m-skriptet som är tillgängligt på matlab-azure-services\Software\MATLAB\startup.m. Detta säkerställer att alla nödvändiga funktioner har konfigurerats för åtkomst till Azure-tjänster. Utdata bör se ut så här:

    >> 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
    

Utföra användarautentisering

Med användarautentisering uppmanas användaren att logga in via ett webbläsarfönster. Vid lyckad inloggning beviljas en användarauktoriseringstoken. Det här avsnittet visar hur du konfigurerar det här interaktiva inloggningsflödet.

Så här utför du användarautentisering:

  1. Skapa en Auth.json-fil i arbetskatalogen med relevanta autentiseringsuppgifter. KustoClientAppId som returneras från https://<adx-cluster>.kusto.windows.net/v1/rest/auth/metadata måste ersättas med värdet för ClientId nedan:

    {
        "AuthMethod": "InteractiveBrowser",
        "TenantId" : "<AAD Tenant / Authority ID for the login>",
        "ClientId" : "<Client ID>",
        "RedirectUrl": "http://localhost:8675"
    }
    
  2. Fråga klustret på följande sätt:

    % 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
    

Utföra programautentisering

Microsoft Entra programauktorisering kan användas för scenarier där interaktiv inloggning inte önskas och automatiserade körningar krävs.

Så här utför du programautentisering:

  1. Skapa en Auth.json-fil i arbetskatalogen med relevanta autentiseringsuppgifter:

    {
        "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. Fråga klustret på följande sätt:

    % 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