[Database, JavaScript] Node-oracledb goes 1.0: The Node.js add-on for Oracle Database

原文はこちら。
https://blogs.oracle.com/opal/entry/node_oracledb_goes_1_0

Announcement

本日Oracleはnode-oracledb 1.0をリリースしました。これは高性能のOracle Databaseアプリケーションを実現するためのNode.jsのAdd-onです。
Node.js
https://nodejs.org/
Node-oracledbはnpmjs.comやGitHubからご利用いただけます。
Oracle Database Driver by Oracle Corp. (npmjs.com)
https://www.npmjs.com/package/oracledb
Oracle Database driver for Node.js (GitHub)
https://github.com/oracle/node-oracledb
GitHubに今年頭に最初のコードをPushしてからほぼ毎月、新機能を加えながら、node-oracledbのアップデートをリリースしてきました。非常にエキサイティングなことに、すでに採用され、本番運用されている重要なアプリケーションで動作しているそうです。node-oracledbとしての8回目のリリースである今回のリリースは、これまでの中で最高のものであることをお約束します。

node-oracledb 1.0 add-on for Node.jsでは、以下の標準機能や拡張機能をサポートしています。
node-oracledbは、他のオープンソース言語用のOracle Database ドライバのように、Oracleがオープンソースチャネル(GitHub)を通じて機能強化、メンテナンス、サポートします。このAdd-onはApache 2.0ライセンスに基づきます。

node-oracledbの入手方法

Oracle Technology NetworkのNode.js Developer Centerにnode-oracledbを始めるにあたって必要なすべてのリンクや情報があります。
Node.js Developer Center
http://www.oracle.com/technetwork/database/database-technologies/node_js/index.html
まずは、node-oracledbの手順に従ってスタートしてください。
Installing node-oracledb
https://github.com/oracle/node-oracledb/blob/master/INSTALL.md

過去のリリースからの変更点

大きな変更点は以下の通りです。
  • LOBに対するクエリ、インサート、PL/SQLでのLOBバインド変数のサポートを追加し、CLOB、BLOB型のStreamインターフェースを実装しました
    多くのレガシースキーマを取り扱う際に必要になっただけでなく、LOBのサポートもあって、アプリケーション開発者はOracle Database 12.1.0.2のJSONデータ型をVARCHAR2の最大長の制限を気にせずに利用できます。
    お客様からは、いつLOBがサポートされるのか、早期アクセスしたい、と毎日のようにコンタクトしてこられましたが、ようやく、サポートしました。引き続き負荷テストやベンチマークを実施して機能強化に努めていきます。
    LOBをnode-oracledbで利用する方法は、以下のドキュメントやサンプルをご覧ください。
    Working with CLOB and BLOB Data
    https://github.com/oracle/node-oracledb/blob/master/doc/api.md#lobhandling
    node-oracledbのサンプル
    https://github.com/oracle/node-oracledb/tree/master/examples
    Oracle DatabaseでのJSONサポートに関する一般的な情報は、以下のドキュメントもしくはJSONチームのブログエントリをご覧ください。
    JSON in Oracle Database
    http://docs.oracle.com/database/121/ADXDB/json.htm#CACGCBEG
    http://docs.oracle.com/cd/E57425_01/121/ADXDB/json.htm#CACGCBEG
    JSON in the Oracle database
    https://blogs.oracle.com/jsondb/
  • Oracledb.fetchAsStringexecute()の新たなfetchInfoプロパティを追加し、数字(number)、日付(date)、ROWIDを文字列としてフェッチできるようになりました。
    日付(date)と数字(number)はアプリケーションレベルで、日付と数字、ROWIDは文レベルで利用可能です。これらの機能を使うと、JavaScriptの表現や変換における制限を克服することができます。
  • DATE型としてのDATE、TIMESTAMP、ローカルタイムゾーン付きTIMESTAMPをDML RETURNING(RETURNING INTO)型にバインドできるようになりました。
    これらのデータ型を文字列としてバインドできます。
  • 内部Oracleクライアント文字セットが常にAL32UTF8に設定されるようになりました。
    これでもう外部でNLS_LANGを設定する必要はありません。ユーザーから報告された、マルチバイトデータに関連するバグは内部バッファの割り当てを正したことにより修正されました。NLSエクスペリエンスの一貫性が向上しました。
  • テストスィートの資格証明やサンプルデータベースの資格証明を環境変数から設定できるようになりました。
    自動的にプロビジョニングされた環境でのテストを支援するちょっとした変更です。テストスィートっはすでに大規模な件数をカバーしています。将来のリリースで機能強化を続けていきます。
  • node-oracledbのバグ修正。これらは変更履歴に列挙しています。
    Change Log
    https://github.com/oracle/node-oracledb/blob/master/CHANGELOG.md

次は?

ダイナミックに変化する環境におけるオープンソースプロジェクトゆえ、我々のStatement of Directionは、簡単かつ柔軟な目標としていました。積極的にOracle Databaseの機能のサポートやプロジェクトに関係するユーザーから機能要求に取り組んでいます。我々の優先順位リストは、それぞれのポイントリリースで再評価します。
そして今、version 1.0に到達しました。では次は?ここからスタートです。数多くの重要で興味深いタスクが目の前にあります。開発プロセスから、ドライバの機能、配布に至るまでのプロジェクトのレビューからスタートします。このレビューで、次のタスクを決定します。ユーザーからのヒアリングは優先順位付けのために重要なので、躊躇せずにGitHubへのコメントをお願いします。
oracle/node-oracledb : Issues
https://github.com/oracle/node-oracledb/issues
io.jsとの再マージやNode.js Foundationの構成など、Node.jsには大きな変化が起こっています。マージされたNode.jsのコードベースが安定し、Node.js FoundationのLTS(長期間サポート)の計画が固まると、node-oracledbのスケジュールの詳細について、より秩序だってお話することができるようになるでしょう。Node.jsやパートナーの皆様と一緒に最高のエクスペリエンスを提供するように取り組んでいます(テクニカルノートで、互換性レイヤNANのV2リリースは直近の数日間で行われたため、node-oracledb 1.0への取り込みには間に合いませんでした。そのため、最新、最先端のio.jsのサポートはnode-oracledbの将来バージョンにて実施する予定です)。
成長しているnode-oracledbミュニティ、特にコードや提案、議論でnode-oracledbに貢献してくださった方々への感謝をもって、この発表の結びとします。

0 件のコメント:

コメントを投稿