2017年9月8日金曜日

SQL 基礎(結合条件と抽出条件について)

もういい歳してですが、SQL に苦手意識があります。

今回は基礎ということで結合条件(JOIN)と抽出条件(WHERE句)のことを整理したいと思います。

そもそも、この苦手意識は何処から来てる?!みたいなことを考えると、、、
・新人配属されてから約1年、RDBMSを実務で触ってなかった(これアプリ開発現場からすると珍しくみえますが、たまたま配属先のプロジェクトではメールシステムの開発ということでLDAPだったんですね)
→LDAP検索/更新は沢山したよ〜、LDIFとか懐かしい。
・DB設計なるものを0から実施したことがない。
まあ、こんなとこです。
要は実戦不足からくるものが大きいです。

それはそれとして、仕事ではそうも言ってられない(というか関係ないので)進めます、、、

今回参考にしたサイト
図もありとてもわかりやすい。

イメージ的には、軸となるテーブル(もしくはデータ群)決めて
①肉付け・欲しいデータ精査
②絞り込み
ざっくりこんな感じでしょうか。

自分はこんな風に組み立ててます、とかご意見も色々知りたいとこですね。

2017年9月3日日曜日

フォールトトレラントについて

似た用語多くの覚えづらいので整理しておく。

◾︎フォールトトレラント
故障が発生しても本来の機能を維持しようとする『考え方』。考え方なので具体的な手法のことではないのがポイント。

具体的な手法は以下の通り。

◾︎フェールセーフ、フェールソフト
フェールセーフ→安全を優先し止める
フェールソフト→障害発生しても稼働できるように設計しておく

参考サイト

2017年9月1日金曜日

OracleとSQLServerの違い

以下のブログは、Microsoftパートナー向けなのであまり真に受けるのはどうかと思うが参考までに。コスト高は実感しているが、、、

【マイクロソフトを選ぶ理由】 Microsoft SQL Server と Oracle のデータベース比較 【 1/30 更新】



同僚から聞いたOracleとSQLServerの違い、in句で複数カラム指定したい場合

上記サイトにもあるように、結合する項目がNULLを許容するときには注意が必要。

<その他参考>

開発者必見! Windows Server&SQL Server 2016テクニカルガイド―IT提案セミナーレポート


ここからはじめる SQL Server の状態取得

2017年8月30日水曜日

Oracle numberの精度について

以前の職場で、
ORA-01438: 指定した精度を超えた値が列に指定されています"
のエラーが発生。

内容を確認したところ、どうやらテーブルにあるnumber型項目に格納できる精度を超えたためエラーとなっていた。

number型について復習しておく。

参考サイト

number型は、全体の桁数と小数点以下の桁数を指定することもできます。

テーブル定義でいうとnumber(8,3)みたいな場合、全体桁数が8で、そのうち小数桁数が3桁となる。つまり、整数部は8-3=5桁となる。

しかし、今回の発生した内容はこの整数部5桁の項目に6桁を格納(Insert)してエラーとなっていた。

まあ、本来は入口(アプリ)でチェックしてそのような値を許さないようにしないといけませんね。

2017年8月26日土曜日

Oracleバックアップについて

<まとめ>
無停止でバックアップ取得したい場合にはRMAN。
日次10分程度?!の停止が許容される場合にはスナップショットで十分か。

スナップショットでは、スナップショット取得後の本番DBに更新があった場合
更新前データをスナップショットキャッシュと呼ばれる領域に退避する。

バックアップからリストアするときには、上記キャッシュとスナップショットをもとに
データを復旧する。

Recovery Managerを使ったバックアップ方法 
※記事古い
http://www.atmarkit.co.jp/ait/articles/0604/21/news115.html

リストアとリカバリー
https://www.google.co.jp/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0ahUKEwiCgujY1OnVAhWKzbwKHX7eDWkQjhwIBQ&url=https%3A%2F%2Fwww.slideshare.net%2Fryotawatabe%2F2016715-jpoug-rdbms-backup-architecture&psig=AFQjCNG0bWKHH2Fr3aEJTPeLTuZRp_5Gxw&ust=1503450748900437


<参考>
ストレージの便利な機能『スナップショット』
https://japan.emc.com/microsites/japan/techcommunity/learn/foundation/snapshot1.htm

Amazon Redshift クラスター(仕様)
http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/working-with-clusters.html

[AWS Black Belt Online Seminar] Amazon Redshift Update – 最近追加された新機能と Redshift Spectrum レポート
※RedshiftからS3に直接クエリ発行可能
http://dev.classmethod.jp/cloud/aws/aws-blackbelt-redshift-spectrum/

2017年8月4日金曜日

セルフBIとSIerにおけるスキルアップについて

日経SYSTEMSを久しぶりに読んだので、いくつか書き残しておく。

本日のお題
・セルフサービスBIについて
・SIerエンジニアのスキルアップについて

<セルフサービスBI>
データ準備フェーズにおけるデータアナリストの費用はどうなのか

費用対効果に見合うのか不明だが、スモールスタートし、ある程度の結果を残せるのか等
業務改善的に継続していかないとノウハウの問題とかで一瞬利便性が上がったとしても、業績アップにどこまで貢献できるかは、業務部門と一体になり運用含めて取り組まないといけない。

記事にあった「コンピュータが人に変わって意思決定するのではなく、人がより良い意思決定をできるようにする」
→これが的を得ている気がするし、しっくりくる表現だと思う。あくまで現状の日本企業の話だが。

<SIerエンジニアのスキルアップについて>
基本的には
・勉強会やセミナーで学んだことをアウトプットする
・とにかく手を動かす(サービスを使ってみる)
というか、エンジニアとして基本的なことでした。。。

実際、ユーザ企業におけるIT企業に求めるスピード感は上がっていると思う。

2017年6月1日木曜日

LINE Bot体験してみた

下記のサイトにある手順にそって実際にLINE Bot作ってみました。

誰でも簡単にできる! LINE Botの作り方
https://codezine.jp/article/detail/9810?p=5

とりあえず全般の感想としては、今回はサンプルとして
HEROKUを使いphpでアプリ作成し、dropbox上にDeployして
動かしてみましたが、Javaエンジニアなので次回?!は言語を変えて
何かできればな~と思いました。

それでは、手順にそってコメントを残しておきます。

<インストール>
基本的に手順通り進めればOK。
composerとかphp超初心者なので、はじめてインストしました。

<HEROKUアカウント設定など>
はじめてのサインイン、その後トップ?!ページに
複数言語のロゴが表示され、なんだか少しテンションあがったw
むかーし、はじめてeclipseを起動したときを思い出しました。

<Dropboxとの連携>
実はこんな使い方したのも初めてで新鮮!
そして、Deploy。はやっ!

<LINE bot作成、設定>
ここも手順通り進めれば、あら不思議いつものLINEに友達追加できる状態に

<動作確認>
1時間ちょいでサンプル完成。

アプリ仕様としては、こちらが送ったメッセージをおうむ返ししてくる。
ちなみにスタンプは返してきません。

<今後>
今回は既に完成されたプログラムをDeployして動かしただけなので
時間あるときにロジックを覗いて、さらに時間あればJavaで
応用したいと思います。