Monday Feb 08, 2016

'dcli' execution order in serial mode

'dcli' is short for 'distributed command line interface' and is included in Exadata and Exalogic.

Recovery of the Exalogic Control Stack from Hardware Failures and Corruption

# /opt/exalogic.tools/tools/dcli -g IPAddressesFile 'date'

It runs in parallel by default as you can see below.

$ dcli -c server02m,server01m -l oracle 'date;sleep 10;date'
server02m: Mon Feb  8 09:08:02 JST 2016
server02m: Mon Feb  8 09:08:12 JST 2016
server01m: Mon Feb  8 09:08:02 JST 2016
server01m: Mon Feb  8 09:08:12 JST 2016

But for certain tasks, you may need to run one by one. For example, applying patches with opatchauto tool.

DBUA 12c and "datapatch.pl" - things to know (Upgrade your Database - NOW!)

Opatchauto

'dcli' has 'serial' option. So, it's good. But be careful that it doesn't execute in specified order as you see below.
I just added '--serial'. This doesn't always run last one first, either. In my case, 'server01m' always executes first.
AND it does NOT always run in ASCII sorted order, either. Maybe it's time to read 'python' code, now...

$ dcli --serial -c server02m,server01m -l oracle 'date;sleep 10;date'
server02m: Mon Feb  8 09:08:54 JST 2016
server02m: Mon Feb  8 09:09:04 JST 2016
server01m: Mon Feb  8 09:08:44 JST 2016
server01m: Mon Feb  8 09:08:54 JST 2016

Thursday Feb 04, 2016

データベースのJSON機能をGeoJSONで試してみる(その1)

1年半前にリリースされたバージョンでJSON機能が追加されました。

Oracle Database 12c (12.1.0.2)技術セミナー #6 JSON対応 - YouTube

JSON形式のデータをOracle Databaseがサポートするための実装

GeoJSONデータに対してこの機能を使う例を数回に分けてご紹介します。
元データは国土交通省の"GISホームページ"からダウンロード可能ですがこれはGeoJSON
形式データではありません。

国土数値情報 行政区域データの詳細

都道府県名(N03_001)当該区域を含む都道府県名称

これをGeoJSONに変換し、Oracleにロードするという手順を踏む必要がありますが
ここはまだベストの方法が分かっていないため次回以降ご紹介したいと思います。

今日はロード後の状態から確認します。まずは表定義です。SDO_GEOMETRYは
Oracle Spatial 機能のデータ型ですがしばらくは使いません。

SQL> describe GEO_JSON_VC
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 GJ_FEATURE                                         VARCHAR2(32767)
 GEOM                                               PUBLIC.SDO_GEOMETRY

12.1.0.1 からVARCHAR2の最大長が 32KB になってますので今回は最大限にしています。ですが
今回のデータを32KBに納めるように分割するのは難しいので実際は CLOB か BLOB の方が良いと思います。

GJ_FEATUREの総件数と内容を1行だけ見てみます。今回はパフォーマンス計測のためデータの重複や無効なデータも表に入っています。

SQL> select count(*) from GEO_JSON_VC where GJ_FEATURE is json;

   1692928

SQL> select substr(gj_feature,1,240) from GEO_JSON_VC where GJ_FEATURE is json and rownum=1;

{ "type": "Feature", "properties": { "N03_001": "北海道", "N03_002": "渡島総合振
興局", "N03_003": null, "N03_004": "函館市", "N03_007": "01202" }, "geometry": {
 "type": "Polygon", "coordinates": [ [ [ 141.03201083, 41.72375222499999 ], [ 14
1.031973333,

国交省のホームページに書いてありますが名前が"N03_001"の値には都道府県名が入っています。
ここだけを取り出すには以下のようにDB12cR1 PS1(12.1.0.2)の新機能のJSONオペレーターを使います。

SQL> select unique json_value(GJ_FEATURE,'$.properties.N03_001') from GEO_JSON_VC;
岐阜県
大阪府
鹿児島県
[...]
44 rows selected.

日本に都道府県が 44 しかないという妙な結果になっていてすみません。これはデータが完全にロードされていないのが理由です。
続きの回では緯度経度情報をSELECTする例を予定しています。

About

Personal View of a Sales Engineer in Tokyo.

Search

Archives
« February 2016
SunMonTueWedThuFriSat
 
1
2
3
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
     
       
Today