A differenza dei database NoSQL standard che richiedono l'indicizzazione manuale o plugin di terze parti, NCache Offre funzionalità di interrogazione SQL native che colmano il divario tra la familiarità con i tradizionali RDBMS e la scalabilità distribuita dei database NoSQL. In scenari complessi reali, la tua applicazione spesso ha bisogno di recuperare dati in base ad attributi specifici anziché effettuare una ricerca tramite la chiave primaria. L'interrogazione dei dati tramite SQL semplifica il recupero dei dati dal database in base alla tua logica personalizzata in fase di esecuzione.
NCache supporta un meccanismo di interrogazione SQL per consentirti di cercare nella cache in base a un determinato criterio e restituire il set di risultati richiesto. NCache utilizza un linguaggio di query molto simile al linguaggio strutturato SQL nativo, che semplifica l'interrogazione dei dati memorizzati nella cache indicizzati. NCache SQL supporta i tipi di dati standard .NET e Java, tra cui string, int, decimal, bool e DateTime, garantendo la sicurezza dei tipi durante l'esecuzione delle query.
NCache utilizza un'interfaccia di query simile all'interfaccia ADO.NET per supportare vari metodi di query per cercare o eliminare dati dalla cache. Di seguito sono riportati alcuni dei più importanti metodi di query supportati in NCache.
// Using SQL parameters to fetch specific Product keys and values from the distributed cache
string query = "SELECT * FROM FQN.Product WHERE ProductID > ?";
var queryCommand = new QueryCommand(query);
queryCommand.Parameters.Add("ProductID",50000);
ICacheReader reader = cache.SearchService.ExecuteReader(queryCommand, false, 0);
if (reader.FieldCount > 0)
{
while (reader.Read())
{
string result = reader.GetValue<string>(0);
}
}
// Executes an SQL-based search to retrieve Product objects matching criteria
String query = "SELECT * FROM FQN.Product WHERE ProductID > ?";
QueryCommand queryCommand = new QueryCommand(query);
HashMap<String, Object> parameters = new HashMap<>();
parameters.put("ProductID", 50000);
queryCommand.getParameters().putAll(parameters);
CacheReader cacheReader = cache.getSearchService().executeReader(queryCommand);
if (cacheReader.getFieldCount() > 0) {
while (cacheReader.read()) {
cacheReader.getString(0);
}
NCache consente di specificare le colonne da proiettare rispetto alla query SQL. Di seguito sono indicate le proiezioni di base più comunemente utilizzate supportate NCache.
SELECT COUNT(*) FROM FQN.Product WHERE UnitsInStock > ?
Fare riferimento a Ricerca SQL per oggetto per maggiori informazioni.
Questi operatori vengono utilizzati e riutilizzati in tutto il database SQL per l'elaborazione e la manipolazione dei dati. NCache supporta vari operatori SQL che consentono di ottenere il risultato desiderato in modo efficiente. Queste funzioni sono:
string query = "SELECT OrderID FROM FQN.Order WHERE OrderDate = ?";
var queryCommand = new QueryCommand(query);
DateTime orderDate = new DateTime(2022, 01, 01);
queryCommand.Parameters.Add("OrderDate", orderDate);
ICacheReader reader = cache.SearchService.ExecuteReader(queryCommand);
if (reader.FieldCount > 0)
{
while (reader.Read())
{
int orderID = reader.GetValue<int>("OrderID");
Console.WriteLine($"Order: {orderID} was placed on 1st January, 2022.");
}
}
else
{
Console.WriteLine($"No orders were placed on 1st January 2022.");
}
String query = "SELECT OrderID FROM FQN.Order WHERE OrderDate = ?";
QueryCommand queryCommand = new QueryCommand(query);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date orderDate;
orderDate = sdf.parse("2022-01-01");
HashMap<String, Object> parameters = new HashMap<>();
parameters.put("OrderDate", orderDate);
queryCommand.getParameters().putAll(parameters);
CacheReader cacheReader = cache.getSearchService().executeReader(queryCommand);
if (cacheReader.getFieldCount() > 0) {
while (cacheReader.read()) {
int orderID = cacheReader.getInt(cacheReader.getOrdinal("OrderID"));
System.out.println("Order: " + orderID + " was placed on 1st January, 2022.");
}
} else {
System.out.println("No orders were placed on 1st January 2022.");
}
Gli operatori SQL sono parole chiave riservate nella clausola WHERE per eseguire operazioni logiche e di confronto. NCache ti fornisce il supporto dei seguenti operatori SQL per interrogare i tuoi dati in base a condizioni personalizzate.
SELECT ProductName, UnitsAvailable From FQN.Product WHERE Category IN ('Beverages', 'Confections')
© Copyright Alachisoft 2002 - . Tutti i diritti riservati. NCache è un marchio registrato di Diyatech Corp.