検索サイトで効率的に情報を得る方法。
google あるいは Bing で検索する際には、
site: 指定を付加して検索すると、 特定のサイトの中だけを検索できる。
一般的な単語はhitしすぎるので注意が必要。
記号を含むなら、"..." と囲むと上手くいく可能性がある。
スペースの有・無で検索結果が変わる。
スペースを含むキーワードを検索する場合は、
と良い。
Exchange = "両替"ではなく、
"Microsoft Exchange Server" のことについて検索したいなら、
"exchange server" 2003|2007|2010などとして検索する。
製品名に幅があるときは、|と- 指定で加減する。
最近、VB.NETの呼称がVBになっているのでVB6・VBAと区別が付かない。
一般的な単語なら、日英を気にしなくてもgoogleが翻訳して検索する。
''memory leak "windows server 2003"''
日本語の情報だけに絞りたい場合は、
平仮名(例:の) を指定すると、日本語に絞りやすくなります。
キーワード+サイト指定検索
日本マイクロソフト内で、office/sharepointの新製品発売に関する情報
microsoftサイト全体で visualstudio の エディション比較の情報
Windows7とvirtual pc 7 (2004除く) script に関するblogを検索
msdn開発blogを検索
エラー画面に表示された、エラーメッセージ、コードなどをkeywordに指定して検索します。
短いメッセージでも、長いメッセージでも、メッセージを正確に入手できたら、そのまま検索にかけます。
文章であっても、キーワードに分割して検索してくれるので、太字の多い結果を参考に、現象の絞込み、新たなキーワードのきっかけにします。
hang|blue|bsod|reboot などのキーワードを付加します。
BSOD : Blue Screen Of Death.
social.technet と付いていたら、technet forum の内容です。Microsoft公式情報ではないので、公式の情報も探しましょう。
ただし、できないことの証明(悪魔の証明)は困難です。
social.msdn と付いていたら、msdn forum の内容です。Microsoft公式情報ではないので、公式の情報も探しましょう。
ただし、できないことの証明(悪魔の証明)は困難です。
http://www.microsoft.com/ http://www.microsoft.com/japan | サイトTOP |
http://technet.microsoft.com/en-us/ http://technet.microsoft.com/ja-jp/ | technet, サーバー系製品ドキュメント |
http://msdn.microsoft.com/en-us/ http://msdn.microsoft.com/ja-jp/ | msdn, 開発系ドキュメント |
http://office.microsoft.com/en-us/ http://office.microsoft.com/ja-jp/ | office系製品サイト、office系ドキュメント |
http://onlinehelp.microsoft.com/en-us/ | SystemCenter?(一部), Office365, Intune 系ドキュメント |
http://support.microsoft.com/ | サポート情報 |
http://support.microsoft.com/lifecycle/ | サポートライフサイクル情報 |
http://support.microsoft.com/lifecycle/search/default.aspx | サポートライフサイクル情報/サポート期限検索 |
http://technet.microsoft.com/en-us/evalcenter/default.aspx | 評価版ダウンロード |
http://technet.microsoft.com/ja-jp/evalcenter/default.aspx | 最新バージョン, 最新のBeta/RC版のダウンロード |
http://www.microsoft.com/presspass/ http://www.microsoft.com/japan/presspass/ | news release |
http://www.microsoft.com/download/en/ http://www.microsoft.com/downloads/ja-jp/ | Microsoft Downlaod Center |
http://blogs.msdn.com/ | 開発系 MSの人のblog |
http://blogs.technet.com/ | ITpro系 MSの人のblog |
http://answers.microsoft.com/en-us http://answers.microsoft.com/ja-jp | microsoft answers 個人/一般ユーザー向けのforumサイト だれでも参照/検索可能。 Live ID があれば、書き込みもできます。 |
http://social.technet.microsoft.com/Forums/en-US/categories/ http://social.technet.microsoft.com/Forums/ja-jp/categories/ | technet forum 個人/一般ユーザー向けのforumサイト だれでも参照/検索可能。 日本語のページで検索がうまくいかないようなら、英語のページで検索。 Live ID があれば、書き込みもできます。 |
http://social.msdn.microsoft.com/Forums/en-US/categories/ http://social.msdn.microsoft.com/Forums/ja-jp/categories/ | msdn forum 個人/一般ユーザー向けのforumサイト。 だれでも参照/検索可能。 日本語のページで検索がうまくいかないようなら、英語のページで検索。 Live ID があれば、書き込みもできます。 |
http://channel9.msdn.com/ | MSの人のインタビュー, 製品デモ video |
http://www.codeplex.com/ | MSが運営する open source リポジトリ。 開発系のサンプル、サーバー系のテンプレート、などソース・ドキュメントが多数。 MSの人からの提供も多いが、MSの人でなくても登録すれば公開できるので、公式の情報も漏れなく探しましょう。ただし、できないことの証明(悪魔の証明)は困難です。 |
トラブル時よりも、新製品情報を検索するとき、などに。
日立 IBM HP などのメーカ名や、 運用 監視|監視|配布 仮想 のような
機能要件の一般用語を一緒に指定すると、絞込みが早いかもしれません。
外部の掲示板系のサイトを指定して検索することも、あまり無いと思いますが、
エンドユーザがトラぶるような問題では、多数の既知情報が見つかるかもしれません。
keywordに ベストアンサー や おすすめ などを付加すると、
回答のあったものを優先して探せるかもしれません。
AzureSQL Database elastic database toolsの調査の例
シャーディングと書かれているので「特定のキーの範囲などの条件で、複数のDBへ分散してアクセスする方法」ということが分かる(DBのパーティショニングなどについての知識があると、よりピンと来る)。
#シャーディングという言葉が何時から一般的な言葉になったのかは良くわかりませんが、昔から分割キーを用いたスケールアウト方式はありました。
この頃は、まだライブラリ側でのサポート等はされておらず、ユーザコード側で自前で接続を切り替えるレベルの実装をしていました。
#クラウド時代になって、そういうニーズも一般的になってきたのか、分割キーを用いたDBののスケールアウト方式としてシャーディングと言う言葉が一般化してきたように思います。
テナントの概念やリストシャードマップ、範囲シャードマップの仕組みや用途の調査の例
------------------------------------------------------------------ - 引用:https://azure.microsoft.com/ja-jp/documentation/articles/sql-database-elastic-scale-shard-map-management/ ------------------------------------------------------------------ リスト シャード マップは、 シャードレットを識別する個々のキー値と、シャードとして動作するデータベースとの間の関連付けのことです。 リストのマッピングは明示的であり (たとえば、キー 1 をデータベース A にマップする)、 異なるキー値を同じデータベースにマップできます(たとえば、キー値 3 と 6 の両方がデータベース B を参照する)。 シャードの場所 キー 1 データベース A 3 データベース B 4 データベース C 6 データベース B ... ... 範囲シャード マップでは、キーの範囲がペア [Low Value, High Value) によって記述されます。 Low Value は範囲内の最小キー、High Value は範囲を超える最初の値です。 キー範囲 シャードの場所 [1, 50) データベース A [50, 100) データベース B [100, 200) データベース C [400, 600) データベース C ... ... ------------------------------------------------------------------
シャーディングに使用する分割キーの範囲とデータベースの対応付け、を シャード マップ として定義しておくものと思われる。
------------------------------------------------------------------ - 引用:https://azure.microsoft.com/ja-jp/documentation/articles/sql-database-elastic-scale-shard-map-management/ ------------------------------------------------------------------ Elastic Scale API では、シャード マップ マネージャーはシャード マップのコレクションです。 ShardMapManager .Net オブジェクトによって管理されるデータは、次の 3 つの場所に保持されます。 ------------------------------------------------------------------
とあるので、クエリの際に、 ShardMapManager? を指定することで、
キーの範囲を自動判断して、クエリ先のデータベースを自動的に振り分ける。
そんな感じの機能が、Elastic Scale API に用意されてるものと思われる。
テナントについては、
------------------------------------------------------------------ - 引用:https://azure.microsoft.com/ja-jp/documentation/articles/sql-database-elastic-scale-shard-map-management/ ------------------------------------------------------------------ シャードの追加 多くの場合、アプリケーションは、既に存在しているシャード マップに対し、新しいキーまたは キー範囲から期待されるデータを処理するために新しいシャードを単に追加する必要があります。 たとえば、テナント ID によってシャード化されるアプリケーションの場合、新しいテナントに対 して新しいシャードをプロビジョニングすることが必要になる場合があります。 また、毎月シャード化されるデータの場合、新しい月が始まる前に 新しいシャードをプロビジョニングすることが必要になる場合があります。 ------------------------------------------------------------------
という記述があるので、シャーディングのキーの1つとして、テナントIDを使う、というイメージなものと思われる。
また、上の記述に、プロビジョニングのことも触れられているので、振り分け先のデータベースを追加する仕組み、もあるものと思われる。
「キーの範囲を自動判断して、クエリ先のデータベースを自動的に振り分ける。
そんな感じの機能が、Elastic Scale API に用意されてるものと思われる。」
ということで、
普通、SQLでサポートされると思うので、どんなアーキテクチャか?と、
「Elastic Scale API」とグーグル検索してみると以下の情報を発見。
SQL Serverのパーティショニング?はファイルグループごとにデータを分散するが、
AzureSQL Database elastic database toolsは、
SQL ServerのVMにデータを分散ごとにする「管理ツール」と「クライアント ライブラリ」っぽいことが分かる。
------------------------------------------------------------------ - 引用:https://azure.microsoft.com/ja-jp/documentation/articles/sql-database-elastic-tools-multi-tenant-row-level-security/ ------------------------------------------------------------------ int customerId = 12345; int newPersonId = 4321; // Connection to the shard for that customer ID using (SqlConnection conn = customerShardMap.OpenConnectionForKey( customerId, Configuration.GetCredentialsConnectionString(), ConnectionOptions.Validate)) { // Execute a simple command SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = @"UPDATE Sales.Customer SET PersonID = @newPersonID WHERE CustomerID = @customerID"; cmd.Parameters.AddWithValue("@customerID", customerId); cmd.Parameters.AddWithValue("@newPersonID", newPersonId); cmd.ExecuteNonQuery(); } ------------------------------------------------------------------
------------------------------------------------------------------ - 引用:https://azure.microsoft.com/ja-jp/documentation/articles/sql-database-elastic-scale-multishard-querying/ ------------------------------------------------------------------ using (MultiShardConnection conn = new MultiShardConnection( myShardMap.GetShards(), myShardConnectionString)) { using (MultiShardCommand cmd = conn.CreateCommand()) { cmd.CommandText = "SELECT c1, c2, c3 FROM ShardedTable"; cmd.CommandType = CommandType.Text; cmd.ExecutionOptions = MultiShardExecutionOptions.IncludeShardNameColumn; cmd.ExecutionPolicy = MultiShardExecutionPolicy.PartialResults; using (MultiShardDataReader sdr = cmd.ExecuteReader()) { while (sdr.Read()) { var c1Field = sdr.GetString(0); var c2Field = sdr.GetFieldValue<int>(1); var c3Field = sdr.GetFieldValue<Int64>(2); } } } } ------------------------------------------------------------------
と、コードレベルで確認できた。
やはり、SQLではなく、クライアント ライブラリでのサポートの模様。