Hvordan implementere SUM med @QuerySqlFunction?

stemmer
0

Eksemplene sett så langt som dekker @QuerySqlFunction er triviell. Jeg satte en under. Men jeg leter etter et eksempel / løsning / hint for å gi et kors rad beregning, f.eks gjennomsnitt sum, ... Er dette mulig?

I eksemplet, returnerer funksjonen verdien 0 fra en matrise, i utgangspunktet en implementering av ARRAY_GET (x, 0). Alle andre eksemplene jeg har sett er de samme: en rad, får en verdi, gjøre noe med det. Men jeg må være i stand til å beregne summen av et gruppert resultat, eller mulig mye mer forretningslogikk. Hvis noen kunne gi meg med QuerySqlFunction for SUM, jeg antar ville tillate meg å gjøre mye mer enn bare SUM.

Trinn 1: Skriv en funksjon

public class MyIgniteFunctions {
@QuerySqlFunction
public static double value1(double[] values) {
    return values[0];
}
}

Trinn 2: Registrer funksjonen

CacheConfiguration<Long, MyFact> factResultCacheCfg = ...
factResultCacheCfg.setSqlFunctionClasses(new Class[] { MyIgniteFunctions.class });

Trinn 3: Bruk den i en spørring

SELECT
      MyDimension.groupBy1,
      MyDimension.groupBy2,
      SUM(VALUE1(MyFact.values))
FROM
     dimensionCacheName.DimDimension,  
     factCacheName.FactResult
WHERE
      MyDimension.uid=MyFact.dimensionUid
GROUP BY  
      MyDimension.groupBy1,
      MyDimension.groupBy2
Publisert på 13/10/2015 klokken 09:25
bruker
På andre språk...                            


1 svar

stemmer
0

Jeg tror ikke Ignite har i dag ren API-støtte for egendefinerte brukerdefinert QuerySqlFunction som går over flere rader.

Hvis du trenger noe som dette, vil jeg foreslå at du gjør bruk av IgniteCompute APIer og distribuere dine beregninger er lambdaene, eller nedleggelser til de deltakende Ignite noder. Deretter fra innsiden av nedleggelse, kan du enten utføre lokale SQL-spørringer, eller utføre andre cache operasjoner, inkludert underliggende basert skanner over lokalt bufrede data.

Denne fremgangsmåten vil bli utført på tvers av flere Ignite noder i parallell, og skulle gi gode resultater.

Svarte 15/10/2015 kl. 23:58
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more