SQL Server for Linux ちょっとだけ触りました!

Announcing SQL Server on Linux public preview, first preview of next release of SQL Server | SQL Server Blog
SQL Server v.Next—SQL Server on Linux | Microsoft

日本語は 11/17 の SQL Server の発表について at SE の雑記
で。

Azure の VMSQL Server vNext on Red Hat Enterprise」 で VM 作成。
SQL Server for Linux で検索したら出てきます。

Network Security Group で サービス MS SQL を追加しておきます。
TCP で 1433 空ける設定してくれます。デフォは ssh しか空いてない。

展開した VM
Install SQL Server on Red Hat Enterprise Linux - SQL Server vNext CTP1 | Microsoft Docs
の 4 までと 7 が終わってる状態でした。
※sudo firewall-cmd --zone=public --list-ports で 1433 があった。

5 叩いたて sa のアカウントとか設定したら SQL Server を起動出来るようになります。

SSMS で繋がるし、

CLR に依存している関数も動いた!
FORMAT (Transact-SQL)

このへんはどうなってるんですかねー?

ここまで20分掛からずで出来ました、便利になりましたねー。

Azure SQL Database の Free の日本語ポータルの記載が間違ってる。。追記:直りました

2016/11/19 追記:表記直りましたー

この前知ったのですが、SQL Database の FREE 版ってまだ残ってたんですね~。
で、日本語ポータルの表記が間違ってました。

日本語

英語

日本語だと容量が 32GB までとなってますが、32MB の誤りです。
ポータルからフィードバック投げたけど未だ直らないのでブログに書いてみました。。

ちなみに FREE 版は、普通に SQL DB だけ作っても選択出来ません。
Web App と一緒に作成すると、FREE 版を作れます。
azure.microsoft.com
※昔にあった 20MB 無料相当の互換だと思います。ちなみに V12 でした。

Unity Style Developer#1 で 質問してきました! #unistyle

Unity Style Developer#1 - connpass に参加してきましたー。

Unity - Game Engine って iOS/Android 作れるんでしょ?
って位しか知らないど素人でしたが、対応プラットフォーム多いんですね!

ハンズオンのセッションがあって、当日に Unity インストールしましたが楽しめました~。
HTC Vive の実機ありセッションもあって楽しかったです。

で、LT お願いされてたので、何話そうか考えたけど触ってないし話せること無いから、 中の人来てるし質問を答えてもらおう!って感じのLTというかショートセッションというかをやりました。

一応 Data Platform の MVP なので、Data にまつわるところを聞いてきました。
また、会場の参加者からも質問が上がったのでその時のメモを公開します。*1

Q.ローカルにデータを持つ方法パッと調べた感じこんなの見つかったけど、他にも方法あるの?
1.PlayersPrefs
2.ScriptableObject
3.DB(Sqlite?)
4.外部ファイル - txt(json)
5.外部ファイル - binary (msgpack / flatbuffers ?)
6.asset
7.それ以外

A.概ね 1-6 で合ってるよー。
PlaysersPrefs
  =>設定用 (key / url 等の config とか小さいデータ用)
    大きいデータいれると起動が遅くなる、メモリ大量に必要
    =>起動時に読み込むため
ScriptableObject
  =>書き込み出来ない (Read Only)
PlayersPrefs / ScriptableObject / asset は Unity の機能で面倒みてくれる。

外部ファイルや DB は自前で保存/読込実装してね。
json そのままは辞めた方が良いよ。よく使われてるけど

個人的には msgpack よく使ってます。


Q.暗号化ってあるの?

A.Unity では暗号化の機能は持っていない
 =>解析されると、それを使っている全アプリが解析されることになるので、そこまで担保出来ないから


Q.サーバーから取ってきたデータのキャッシュみたいなのはどの方法で?

A.データが少ないなら ScriptableObject (実装?が面倒)
大きいなら DB とか


Q.PCL(Portable Class Library) 使えるの?

A.PCL の事知らないのでわかりません。
  (会場で調べた人から)たぶん使え無さそうという情報が


Q.ソース管理で大きいファイルがあって、某クラウドソース管理でアップに失敗する

A.大きいファイル含めないようにするとか
 [https://unity3d.com/jp/services/collaborate]  では、Write データ含めない
 =>無料だけど、未だβ版


Q.PlayersPrefs に 100個の int[] 保存するの遅くなる?

A.使っても構わないけど、PlayersPrefs 使うより、自前でSystem.IO使って読み書き(シリアライズ/デシリアライズ)した方がたぶん速いよ。
Web のプラットフォームだと、System.IO 使えないけど。

間違いとかあれば教えてくださいー。

*1:聞き間違い等で誤った内容を書いてるかもしれません。

Row-Level-Security BLOCK PREDICATE のメモ

行レベルのセキュリティ
いつの間にか 日本語MSDN提供されてました。
追加/更新操作の制限は、トランザクション単位ではなくクエリ単位だよというメモ。

create table [dbo].[Table] (
  [Id] int
)
go
create schema [rls]
go
create function [rls].[TablePredicate](@Id int)
  returns table
  as return select 1 as [Result] where @Id <> 1
go
create security policy [rls].[TablePolicy]
  add block predicate [rls].[TablePredicate]([Id]) on [dbo].[Table] after insert

Id = 1 は INSERT 出来ない制限を掛けたときに、

begin tran 
insert into [dbo].[Table] ([Id]) values (1)
update [dbo].[Table] set [Id] = 2 where [Id] = 1
commit

はエラーになります。
トランザクションとしては、結果的に Id = 1 の列は追加されていませんが普通の動きですね。*1

クエリ全文

create table [dbo].[Table] (
  [Id] int
)
go
create schema [rls]
go
create function [rls].[TablePredicate](@Id int)
  returns table
  with schemabinding
  as return select 1 as [Result] where @Id <> 1
go
create security policy [rls].[TablePolicy]
  add block predicate [rls].[TablePredicate]([Id]) on [dbo].[Table] after insert
go

begin tran 
insert into [dbo].[Table] ([Id]) values (1)
update [dbo].[Table] set [Id] = 2 where [Id] = 1
commit
go

drop security policy [rls].[TablePolicy]
go
drop function [rls].[TablePredicate]
go
drop schema [rls]
go
drop table [dbo].[Table]
go

*1:分離レベル低いと SELECT から見えちゃうし...

Microsoft MVP アワード (Data Platform) を受賞させていただきました

今回で5回目の受賞になりました。

今後もより一層のコミュニティ活動/情報発信していきますので、SqlWorld :: ホーム 共々宜しくお願いします。  

DB の勉強会は 関西DB勉強会 - connpass も宜しくお願いしますー。
年内にもう1回くらいやりたい。。

デブサミ関西2016 に SQLWorld として参加しました!

2週間も前ですが、やっと blog 書けました。。
Developers Summit 2016 KANSAI #devsumi

今回は かまぷとゆうこのデベロッパーズ☆ラジオ連載一覧:CodeZine(コードジン)
デブサミ関西出張版にも参加させていただきました。
ラジオは初めてだったのですが難しい!緊張して何話してるのか分からない感じに。。

毎年恒例の コミュニティLT も参加させていただきました。

iPhone7 発売日だったのでビッグウェーブネタを混ぜてみました。