
Ende März eine neue Version der Datenplattform InterSystems IRIS 2020.1. Selbst die Coronavirus-Pandemie konnte die Veröffentlichung nicht verhindern.
Wichtig im neuen Release ist die Verbesserung der Kernel-Leistung, die Generierung von REST-Anwendungen nach der OpenAPI 2.0-Spezifikation, Sharding für Objekte, eine neue Art des Management-Portals, Unterstützung für MQTT, ein universeller Abfrage-Cache und ein neues Framework zur Erstellung von Produktelementen in Java oder .NET. Eine vollständige Liste der Änderungen und das Upgrade-Checkliste in englischer Sprache finden Sie unter . Weitere Informationen — unter dem Artikel.
InterSystems IRIS 2020.1 ist eine Version mit erweiterter Unterstützung. InterSystems veröffentlicht zwei Arten von InterSystems IRIS-Versionen:
- Continuous Delivery-Versionen. Erscheinen drei- bis viermal im Jahr in Form von Docker-Images. Sie sind für die Anwendungsentwicklung und -bereitstellung in der Cloud oder in Docker-Containern gedacht.
- Versionen mit erweiterter Unterstützung. Diese erscheinen seltener, für sie werden jedoch Release-Updates mit Fehlerbehebungen veröffentlicht. Sie erscheinen auf allen von InterSystems IRIS unterstützten Plattformen.
Zwischen den Releases mit erweiterter Unterstützung 2019.1 und 2020.1 wurden nur Versionen in Docker-Images veröffentlicht — 2019.2, 2019.3, 2019.4. Alle neuen Funktionen und Fehlerbehebungen aus diesen Versionen sind in 2020.1 enthalten. Einige Möglichkeiten aus den folgenden Punkten sind erstmals in einer der Versionen 2019.2, 2019.3, 2019.4 aufgetreten.
Also.
Entwicklung von REST-Anwendungen nach der Spezifikation
Zusätzlich zu , die seit Version 2019.1.1 unterstützt wird, bietet das Release 2020.1 die Möglichkeit, ein Grundgerüst für REST-Services nach der OpenAPI 2.0-Spezifikation zu generieren. Weitere Informationen finden Sie im Abschnitt der Dokumentation "».
Konvertierung der Installation von Caché oder Ensemble
Dieses Release ermöglicht es, bei der Installation eine Caché- oder Ensemble-Installation in InterSystems IRIS zu konvertieren. Die Konvertierung selbst kann Änderungen im Programmcode, in den Einstellungen oder anderen Skripten erfordern, wird jedoch in den meisten Fällen einfach sein.
Lesen Sie vor der Konvertierung das InterSystems IRIS In-Place Conversion Guide und das InterSystems IRIS Adoption Guide. Diese Dokumente sind auf der Website des weltweiten Supportzentrums von InterSystems im Abschnitt "».
Klienten-Sprachen
InterSystems IRIS Native API für Python
Niedrigstufiger, schneller Zugriff aus Python auf mehrdimensionale Arrays, in denen InterSystems IRIS Daten speichert. Weitere Informationen — "».
InterSystems IRIS Native API для Node.js
Niedrigstufiger, schneller Zugriff aus Node.js auf mehrdimensionale Arrays, in denen InterSystems IRIS Daten speichert. Weitere Informationen — "».
Реляционный доступ для Node.js
Поддержка ODBC-доступа к InterSystems IRIS для разработчиков на Node.js
Zwei-Wege-Kommunikation in Java und .NET-Gateways
Die Verbindungen zwischen .NET und Java-Gateways sind jetzt bidirektional. Das bedeutet, dass ein Programm in .NET oder Java, das über den Gateway von IRIS aufgerufen wird, diese Verbindung verwendet, um auf IRIS zuzugreifen. Weitere Informationen — „».
Verbesserungen in der Native API für Java und .NET
Die IRIS Native API für Java und .NET unterstützt $LIST-Listen und die Übergabe von Parametern per Referenz.
Neues Design des Management-Portals
Dieses Release enthält die ersten Änderungen im Management-Portal. Diese betreffen bisher nur das Aussehen und beeinflussen nicht die Funktionalität.
SQL
Universeller Abfragecache. Ab Version 2020.1 werden alle Abfragen, einschließlich eingebetteter Abfragen und Klassenabfragen, als gecachte Abfragen gespeichert. Früher erforderte die Verwendung eingebetteter Abfragen eine Neukompilierung des Programms, um neuen Abfragecode zu generieren, beispielsweise wenn ein neuer Index hinzugefügt oder die Tabellenstatistik geändert wurde. Jetzt werden alle Abfragepläne in einem gemeinsamen Cache gespeichert und unabhängig von dem Programm, in dem die Abfrage verwendet wird, gelöscht.
Eine größere Anzahl von Abfragetypen kann jetzt parallelisiert werden, einschließlich DML-Abfragen.
Abfragen auf shard-aufgeteilten Tabellen können jetzt einen impliziten Join „->“ verwenden.
Abfragen, die aus dem Management-Portal gestartet werden, werden jetzt in einem Hintergrundprozess ausgeführt. Längere Abfragen fallen jetzt nicht mehr durch die Zeitüberschreitung der Webseite aus. Überlange Abfragen können jetzt abgebrochen werden.
Integrationsmöglichkeiten
Neues Framework zur Erstellung von Produktionselementen auf Java oder .NET
Dieses Release enthält das neue PEX-Framework (Production EXtension), das zusätzliche Optionen zur Implementierung von Komponentenelementen bietet. In dieser Version unterstützt PEX Java und .NET zur Entwicklung von Geschäftsdiensten, Geschäftsprozessen und Geschäftsoperationen sowie für eingehende und ausgehende Adapter. Früher konnten nur Geschäftsdienste und Geschäftsoperationen erstellt werden, und es war notwendig, den Codegenerator im Management-Portal aufzurufen. Das PEX-Framework bietet flexiblere Möglichkeiten, Java- und .NET-Code in Produktionselemente einzuschließen, oft ohne Programmierung in ObjectScript. Das PEX-Paket umfasst folgende Klassen:
Weitere Informationen — „».
Überwachung der Portnutzung in Produktionen.
Das Port Authority-Hilfsprogramm verfolgt die von Geschäftsdiensten und Geschäftsoperationen verwendeten Ports. Damit können verfügbare Ports ermittelt und reserviert werden. Weitere Informationen — «».
Adapter für MQTT
Diese Version umfasst Adapter, die das MQTT-Protokoll (Message Queuing Telemetry Transport) unterstützen, das häufig in Anwendungen für das Internet der Dinge (Internet of Things – IoT) verwendet wird. Weitere Informationen — «».
Sharding
Vereinfachte Architektur
In dieser Version gibt es einen einfacheren und verständlicheren Weg zur Erstellung eines Clusters - auf der Basis einzelner Server (Node-Ebene) und nicht von Bereichen wie in früheren Versionen. Neue API - . Der neue Ansatz ist mit dem alten - Cluster auf Basis von Bereichen (Namespace-Ebene) - kompatibel und erfordert keine Änderungen an bestehenden Installationen. Weitere Informationen — «» und „».
Weitere Verbesserungen im Sharding:
- Jetzt können beliebige zwei Tabellen gemeinschaftlich (auf denselben Shards verteilte oft verbundene Teile von zwei Tabellen) eingerichtet werden. Zuvor war dies nur mit Tabellen möglich, die einen gemeinsamen Shard-Schlüssel hatten. Ab dieser Version wird die Syntax COSHARD WITH auch für Tabellen mit systemeigenen IDs angewendet. Weitere Informationen — «» und „».
- Früher konnte eine Tabelle nur über DDL als clusterfähig markiert werden, jetzt kann dies auch in der Klassendefinition erfolgen - das neue Schlüsselwort Sharded. Weitere Informationen — «».
- Das Objektmodell unterstützt jetzt Sharding. Die Methoden %New(), %OpenId und %Save() funktionieren mit Objekten einer Klasse, deren Daten auf mehrere Shards verteilt sind. Bitte beachten Sie, dass der Code auf dem Server ausgeführt wird, mit dem der Client verbunden ist, und nicht auf dem, wo das Objekt gespeichert ist.
- Der Algorithmus für die Ausführung von Clusteranfragen wurde verbessert. Der Anfragenwarteschlangen-Manager (Unified Shard Queue Manager) stellt Anfragen zur Ausführung in einer Prozess-Pool-Warteschlange, anstatt für jede Anfrage neue Prozesse zu starten. Die Anzahl der Prozesse im Pool wird automatisch basierend auf den Serverressourcen und der Last bestimmt.
Infrastruktur und Bereitstellung in der Cloud.
Diese Version bietet Verbesserungen in der Infrastruktur und der Bereitstellung in der Cloud, einschließlich:
- Unterstützung von Tencent Cloud. Der InterSystems Cloud Manager (ICM) unterstützt jetzt die Erstellung von Infrastruktur und die Bereitstellung von Anwendungen auf Basis von InterSystems IRIS in Tencent Cloud.
- Unterstützung für benannte Volumes (named volumes) in Docker, zusätzlich zur Montage von Ordnern (bind mount).
- ICM unterstützt flexibles Scaling - Konfigurationen können jetzt in der Anzahl der Knoten skaliert werden, das heißt, sie können mit mehr oder weniger Knoten neu erstellt werden. Weitere Informationen - „» und „».
- Verbesserungen beim Erstellen eines eigenen Containers.
- ICM unterstützt eine neue Sharding-Architektur.
- Der Standardbenutzer in Containern ist jetzt nicht mehr root.
- ICM unterstützt die Erstellung und Bereitstellung privater Netzwerke, in denen ein Bastion-Knoten das private Netzwerk mit dem öffentlichen Netzwerk verbindet und zusätzlichen Schutz vor Denial-of-Service-Angriffen bietet.
- Unterstützung für die Erkennung von Diensten über gesichertes RPC.
- ICM unterstützt die Bereitstellung in mehreren Regionen. So wird eine hohe Verfügbarkeit des Systems gewährleistet, selbst wenn eine gesamte Region ausfällt.
- Die Möglichkeit, ICM zu aktualisieren und Informationen über bereits bereitgestellte Systeme zu behalten.
- Containerloser Modus - ICM kann jetzt Clusterkonfigurationen direkt ohne Container auf der Google Cloud Platform bereitstellen und auch den Web-Gateway auf Ubuntu oder SUSE installieren.
- Unterstützung für das Zusammenführen von iris.cpf aus zwei Dateien. Dies hilft ICM, InterSystems IRIS mit unterschiedlichen Einstellungen je nach Betriebmodus der Installation zu starten. Diese Möglichkeit erleichtert die Automatisierung und Unterstützung verschiedener Konfigurationstools wie Kubernetes.
Analytics
Selektives Neubauen des Würfels
Ab dieser Version unterstützt InterSystems IRIS Business Intelligence (ehemals bekannt als DeepSee) das selektive Bauen des Würfels - nur einen einzelnen Indikator oder eine Dimension. Es ist möglich, die Beschreibung des Würfels zu ändern und nur das zu rekonstruieren, was sich geändert hat, dabei bleibt die Gesamtheit des Würfels während des Neubaus verfügbar.
PowerBI Connector
Microsoft PowerBI unterstützt jetzt die Arbeit mit Tabellen und Würfeln von InterSystems IRIS. Der Connector ist seit der Veröffentlichung im April 2019 mit PowerBI verfügbar. Weitere Informationen - „».
Vorschau der Abfrageergebnisse
In dieser Version gibt es einen neuen Vorschau-Modus beim Erstellen von Pivot-Tabellen im Analyzer. So kann schnell die Richtigkeit der Abfrage bewertet werden, ohne auf die vollständigen Ergebnisse zu warten.
Weitere Verbesserungen
- Das Durchlaufen einer Globalen mit der Funktion $ORDER in umgekehrter Reihenfolge (direction = -1) ist jetzt genauso schnell wie in der geraden Reihenfolge.
- Die Leistung des Journalings wurde verbessert.
- Unterstützung für Apache Spark 2.3, 2.4 hinzugefügt.
- Unterstützung für WebSocket-Client hinzugefügt. Klasse %Net.WebSocket.Client.
- Die Versionskontrollklasse verarbeitet jetzt Ereignisse bei Änderungen auf der Produktseite.
- Whitelist zur Filterung erlaubter Anfragen an CSP, ZEN und REST.
- Unterstützung für .NET Core 2.1.
- Verbesserte ODBC-Leistung.
- Strukturierte Protokolle zur Erleichterung der Analyse von messages.log.
- API zur Überprüfung von Fehlern und Warnungen. Klasse %SYSTEM.Monitor.GetAlerts().
- Der Klassencompiler prüft nun, ob der Name des Globals in der Speicherung die maximale Länge (31 Zeichen) nicht überschreitet, und gibt einen Fehler zurück, wenn dies nicht der Fall ist. Früher wurde der Name des Globals ohne Warnung auf 31 Zeichen gekürzt.
Wo bekomme ich
Wenn Sie Unterstützung haben - laden Sie das Paket im Abschnitt der Website wrc.intersystems.com
Wenn Sie InterSystems IRIS nur ausprobieren möchten -
Noch einfacher über Docker:
docker run --name iris20 --init --detach --publish 51773:51773 --publish 52773:52773 store/intersystems/iris-community:2020.1.0.215.0Webinar
Am 7. April um 17:00 Uhr Moskauer Zeit findet ein Webinar zum neuen Release statt. Es wird von Jeff Fried (Director, Product Management) und Joe Lichtenberg (Director of Product & Industry Marketing) geleitet. Das Webinar wird auf Englisch gehalten.
Quelle: habr.com
