「SQL Serverが提供するのと同じ機能について、Oracleはさらに10倍を要求します」-SQL ServerについてのKonstantin Taranov

Gazpromの一部門であるGazekonomika社の開発者およびデータベース管理者であるKonstantin Taranovと話をしました。 Konstantinの専門的な経験は10年以上であり、その間、彼はすべての主要なリレーショナルDBMSで作業し、その結果、MS SQL Serverを選択しました。 Konstantinは、SQL ServerがGazekonomika社で解決されているタスクにとって非常に魅力的である理由を説明し、RuNetツールセットで最も完全なものとSQL Serverで作業するための有用な資料について話しました。











PG Day:コンスタンティン、あなた自身について少し話してください。 専門職でどのくらい働いていますか、あなたの人生でどのような職業上の問題を解決しなければなりませんでしたか?



KT :私について簡単に説明すると、私はモスクワ工学物理研究所を卒業し、原子炉材料科学に特化したトレーニングを受けた物理エンジニアです。 すでに4年目には、これが私の職業ではないことに気付いたため、ITスペシャリストとして再研修することにしました。 その後、オラクルに対する非常に強い傾向がありました。国は比較的増加しており、ITと銀行の多くの空席がありました。 私は経験もバックグラウンドもなしにRDTechに乗り込むことができました。 そこで私は当時最大のプロジェクトの1つであり、VTB24 Bankのデータウェアハウスを構築していました。 次の5年は、オラクルとの緊密な共同作業で過ぎました。 2012年に、私はガス経済に来ました。 当センターの主なタスクは、ロシアだけでなく世界のガス、石炭、その他の燃料資源の需要を予測することです。



私たちはさまざまなデータソースを使用しますが、これらはしばしば互いに矛盾しています。そのため、定期的にデータをチェックして比較する必要があります。 今言うのは流行しているように、データサイエンス。



ガス経済では、Microsoft SQL Serverが歴史的に使用されてきました。 当時は2008年でしたが、文字通り、2012年に更新されました。2017年に切り替える予定です。最後に、CTP 2.1がリリースされ、Microsoftは5月31日に最終使用を約束します。 また、PostgreSQLを使用した小さな内部情報システムもあります。 したがって、ITで10年以上、多くのリレーショナルデータベースに出会いました。なぜなら、PostgreSQL、Oracle、SQL Serverに加えて、MySQLを積極的に使用しなければならなかったからです。



PG Day:あなたは長年、リレーショナルデータベースを扱ってきました。 あなたの意見では、なぜリレーショナルデータベースはその関連性を失わないのですか?



KT :現在、多くのNoSQLとビッグ​​データがあります。 これは興味深いタスクの範囲ですが、これは狭いニッチだと思います。 さまざまな通信社から多くのソースを購入しました。 これらの機関はすべて非常に高価であり、サブスクリプションは数十万ドルに達します。 つまり、情報は既製であるように見え、それを利用して使用します。 しかし、実際には、それは非常に「汚い」ものであり、多くの場合真実ではないことが判明しています。 このデータを取得して使用し、機械学習アルゴリズムを記述し、モデルを作成することはできません。 これらのデータの検証と相互の比較に費やす時間の70%。 「国」の参考書と「国」の概念でさえ、報道機関によって異なります。 顕著な例は英国です。 一部の通信社には、スコットランド、イングランド、ウェールズ(3か国)のみが含まれていますが、北アイルランドおよびさまざまな下位の島国には含まれていません。 したがって、これらのデータの合計統計は異なります。



リレーショナルデータベースのとは何ですか? これは何十年にもわたって証明されてきた技術です。 それはずっと前に作成され、複雑な数学に基づいています。 正確なデータベース構造の作成に時間を費やし、非常に詳細な初期分析、処理、検証を実行すると、出力で既製のデータが得られます。これは、任意のモデル、アルゴリズムに転送でき、良好な結果が得られます。 悪いデータがある場合、もちろん、ニューラルネットワークをトレーニングしたり、さらに複雑なアルゴリズムを構築したりできますが、出力では悪い結果が得られます。 これは、この例で繰り返しテストされています。 いわゆる最適化トランスポート問題を解決するために言語Rを使用しますが、3つの数学があり、彼らは思考の構造に可能な限り近いため、すぐにRが好きでした。



パフォーマンスの問題もありませんでした。 すべてが非常にうまく動作します。 過去3年間、C#を離れ、ビジネスロジックをRに完全に移行しましたが、まだ後悔していません。



PG Day:データベースを扱う予定の人、どこから始めて、どの方向に「掘る」のかをアドバイスできますか?



KTリレーショナルデータベースに関するスタンフォード大学のコースを受講することを強くお勧めします 。 彼は基本に多くの時間を費やしますが、一度このコースは私に多くを明らかにしました。 このコースでは、リレーショナルデータベースが、長年の研究に基づいた深刻な数学 、関係代数に基づいていることを示しています。 NoSQLがなければ、どこにもありません。結局のところ、大量の情報、ギガバイトのデータ、時には他のソリューションを処理したほうがよいからです。 データ間の関係の構造が明確でない場合、またはそのように存在しない場合-長期間研究する必要があるブラックホール-をリレーショナルデータベースに入れないでください。 次に、内部の内容がわかったら、構造化データをリレーショナル構造に転送するのが理にかなっています。



PG Day:新しいプロジェクトのためにデータウェアハウスを選択する必要があったとしましょう。 Oracle、SQL Server、PostgreSQL?



KT :テクノロジースタックを今すぐ選択する場合、 SQL Serverを選択したいのですが、それは深刻な大規模プロジェクトのみです。 私が自分のプロジェクトをしなければならなかった場合、私は正確に無料でPostgreSQLに立ち寄るでしょう。 私は、PostgreSQLを本格的な商用システムですぐに使用することを勧めるほどPostgreSQLに精通していません。 PostgreSQLの欠点は、サポートがないことです。 マイクロソフトでは、完璧でもありませんが、完璧です。



なぜOracleではありませんか? Oracleは非常に高価です。 それを使用することは実用的ではありません;私はトレーニングでそれを示します。 SQL Serverが提供する機能と同じ機能について、Oracleは平均して10倍以上を要求します。 なぜもっと払うのですか? これは別の質問です。 Oracleからサーバーを購入した場合、または多額の資金がある場合は、もちろんOracleを選択できます。 しかし、SQL Serverをお勧めします。 過去5年間で、彼は大きな飛躍を遂げました。 2008年に「製品」にSQL Server 2005があり、パフォーマンスとSQL Management Studioクライアントの両方の面で憂鬱な印象を与えたこのベースを思い出します。 現在、SQL Management Studioは、SQL Serverを操作するための最適なツールの1つです。 彼の唯一のマイナス点は、これまでのところSQL Serverでのみ動作することです。 しかし、これはおそらく、開発者にとって非常に幅広い機能を備えた最高の無料環境です。



リレーショナルデータベースの開発を本当に楽しみたいなら、SQL Server +無料のSQL Management Studioがまさにそれです。 もう1つの重要な「バン」-開発者向けのSQL Server Developerライセンスは無料です。 以前は、ほとんど費用がかかりませんでした(約3,000ルーブル)。 私は自分のニーズのために買いました、それは高価ではありません-私のトレーニングにお金を投資することは常に報われます。 今では完全に無料です。 LinuxでのSQL Serverの出現により、数時間をかけてこのデータベースを試す価値があると思います。 あなたはそれがとても好きかもしれません。



PG Day:SQL Serverの開発と管理に精通しています。 2つの異なる役割を組み合わせるのはどれくらい難しいですか? これはSQL Serverの世界ではどのくらい一般的ですか?



KT :SQL Serverの世界では、これらは2つの完全に独立した役割です。 ただし、SQL Serverには2つの大きな利点があります。 まず、前述したように、 SQL Management Studioです。 これは管理に使用できる優れたGUIであり、すべての管理者タスクの95%をカバーし、教師とアドバイザーがすべて1つにまとめられています。 SQL Management Studioは、Transact-SQLスクリプトをその場で「生成」する機能を提供します。 GUIですべての種類のチェックボックスを選択し、予備設定を行ったら、将来直接使用する作業スクリプトをすぐに取得できます。 または、スケジュールに従ってこのスクリプトを実行するジョブを固定します。 彼と何でもしなさい。 開発者に渡して完成させます。



2番目の切り札は、 PowerShellの非常に優れたサポートです。 日常的な反復操作を実行する必要があるサーバーが多数ある場合は、 PowerShellが最適です。 SQL Server(同名のSqlServerモジュール)と完全に統合されており、絶えず進化および改善されており、Transact-SQLとまったく同じように、さらに優れています。 さらに、いわゆるDBAツールがついにオープンソースに登場しました。 これは、SQL Serverを操作するための一連のPowerShell機能とスクリプトです。 現在、バックアップから復旧まで、SQL Serverのメンテナンスサイクル全体をほぼ網羅しています。 PowerShellモジュールをインストールし、基本的なコマンドと関数、それらのパラメーターを調べるだけで十分です。 これは文字通り午後2時に行われます。



また、 PowerShellのもう1つの利点は、優れたC#言語のサポートが得られることです。 C#で実行されるほとんどすべてのコードをPowerShellに埋め込むことができます。 C#で既製のソリューションがある場合、PowerShellを使用してそれらを簡単に適用して、多数のサーバーおよびデータベースを操作できます。 バックアップ、バックアップの構成、検証、および同様のタスクを行う必要がある場合、お金をかけずにこれを行うことができるツールとストアドプロシージャがあり、サードパーティのソリューションを購入する必要はありません。 便利なインターフェイスとさまざまなグッズが本当に必要な場合は、購入するのが理にかなっています。 しかし、これはすべて無料で行うことができます。



PG Day:夏にサンクトペテルブルクで開催される私たちの会議であなたの今後のスピーチに伝えたいと思います。 非常に大きなマスタークラスを提供します。 イベントに参加したきっかけは何ですか? プレゼンテーションでどのようなプロフィールが表示されると思いますか?



KT :まず、会議に参加することに興味があります。 私たち自身が設定した今年のタスクの1つは、新しい顧客がSQL Serverのライセンスを購入したくない場合にPostgreSQLにソリューションを移行する機能です。 PostgreSQLへの切り替えがどれほど難しいか、この方向への最初のステップをどのようにとるかを評価する必要があります。 すでにプロトタイプがあり、現在のソリューションの約20%がテストモードのPostgreSQLで動作します。 私は、このような大規模な会議に参加し、他の人のスピーチを聞き、彼らが使用するツール、トレーニング用のリソース、処理されるデータの量を直接学習することに興味があります。



本格的なトレーニングを行うという考えは、5年以上にわたってhatch化してきました。 約4年前、TSQLの開発の専門家のコースでは、まるで紙のように講師が資料を読む方法が好きではありませんでした。 SQL Serverを使用した実際のケースはありませんでした。 彼は単にマイクロソフトのプログラムを取得し、それを記憶し、それを読みました。 また、5年以上にわたって多くの経験を積んでおり、SQL Server 2008からSQL Server 2016までのすべてのバージョンを経験しました。バージョンごとに製品の機能が向上し、より高速で信頼性が向上しました。 SQL ServerでRコードを実行するためのサポートがありますが、これは非常に気に入っており、既に使用していますが、顧客からSQL Server 2016への移行には問題があります。 テスト環境ではすべて問題ありませんが、移行するには、この更新のすべての利点をお客様に示す必要があります(具体的には、システム速度の向上とハードウェアの節約が可能です)。 この方向で積極的に取り組んでいます。



したがって、私たちのニーズに合わせて修正された多くのプラクティス、内部ドキュメント、スクリプト、無料ソリューションが蓄積されています。 これらはすべて、 Githubのリポジトリにあり、ほぼ毎日サポートしています。新しい記事、有用なリソースへのリンク、PowerShell用などのスクリプトを補充しています。 現時点では、私たちのサイトsqlserver-kit.orgは、偽りのない謙虚さなしに、包括的な情報が置かれている最も詳細なSQL Serverリソースです。



私のトレーニングは、特定のチェックリストの形でのみ、このリソースの開発の継続であり、リスナーに伝えることを試みます。 聴衆レベルは、回答に貢献し、SQL Serverから可能な限り最高の結果を得るためにどこで物事を行うべきかを示すことができる、エントリーレベルと中間レベルの開発者の間にあることを本当に望みます。



助け、エラー、不正確な点を見つけ、独自のスクリプトを追加したい場合-いつでも歓迎します、喜んでいます。 問題またはプルリクエストを開始することができ、それに迅速に対応します。 マテリアルはMITライセンスの下で配布され、誰でも好きなようにコピーして使用することができます。商業目的も含まれます。



PG Day:オープンソースで独自のツールを宣伝することは非常に前向きなステップです。 無料のオープンソース環境であるLinuxでSQL Serverを操作することが、このマスタークラスを実施するようになった理由の1つです。 最近機会が訪れましたが、聴衆が興味を持つ質問の1つは、Linux上でSQL Serverを実行することに伴う困難と落とし穴は何かということです。 ワークショップで報告会の計画はありますか?



KT:はい。これは、Microsoft、PostgreSQL、MS SQLのいずれを選択するかについての永遠の議論で、Microsoftの主要な切り札の1つです。 現在、多くの開発者がSQL Serverを採用していますが、Windowsの場合とほぼ同じように動作します。 したがって、それに応じてパフォーマンスを調整するために非常に努力します。 当然、5月31日にリリースされる予定の仮想マシン、SQL Server 2017になります。 それが突然転送され、これが非常に可能であれば、これはCTP 2.1になります。



したがって、CentOSをLinuxディストリビューションとして検討しています。 現在、このスタックで表示する予定のすべてのスクリプトをチェックしています。 すべてが計画どおりに進んだ場合、デモンストレーションとすべてのトレーニングは、Linuxに適合したLinux + SQL Serverスタックで構築されます。 問題が発生した場合は、Windows Server 2016 + SQL Server 2017が提供されます。



PG Day:Microsoft製品は、SQL Serverが「真空状態」にあるだけでなく、エコシステムです。 他のプラットフォームで見たいデータベースの専門家の観点から、便利で便利なエコシステム全体の機能を強調できますか?



KT :理想的には、Management Studioがすべてのデータベースを操作できるようにしたいと思います。これは非常に便利なことです。 Windowsで他に便利なものは何ですか? たぶんこれはPowerShellだろう、私は本当にそれに夢中になった、それは人生を大いに簡素化し、必要なものがすべて揃っている。 その中で、グラフを作成したり、非常に簡単にフィルタリングされたグリッドを表示したりできます。 同じSQL Server、Postgresに対してクエリを実行し、正しい形式でデータを受信し、csvにエクスポートして、インポートできます。 PowerShellでは、すべての変数はオブジェクトです。 私たちはそれを埋め、変換し、それで何でもします。 さらに、PowerShellはオープンソースになりました-現在、クロスプラットフォームのオープンソーススクリプト言語です。



PowerShellの唯一の欠点は、GUIがないことです。 それでも、GUIで行うと便利なことがいくつかあります。たとえば、クエリ実行プランを参照してください。 グラフの可視性と可用性は重要な役割を果たします。 PowerShellは優れたグラフィックを構築できます。 手元に何もない場合は、いつでもインストールしてグラフジェネレータとして使用できます。



PG Day:私は、経験のあるポストグレシストとして、データベースでの適切なアクションはコンソール、psqlでのみ実行でき、本当に良い「ガイ」ユーティリティはないという事実に慣れました。 これは、オープンソース製品で作業する多くの人々に当てはまります。グラフィカルインターフェイスですべてを行うことに慣れている人はいません。 Linuxで非常によく話しているManagement Studioツールをサポートする予定ですか? LinuxでSQL Serverを使用したい人、またはコンソールで従来の方法で何かをしなければならない人には、どの程度適していますか?



KT :残念ながら、 Management Studio for Linuxのリリース日はまだ発表されていません。 彼らがリリースを延期するかどうかはわかりません。 そのため、Linuxユーザーはしばらくの間、このようなリッチなインターフェースを奪われます。 移行に関する特定の条件はありませんが、Visual Studio(SSMSは実際にはSQL Server開発に適合したVisual Studioの分岐です)は既にMac用にリリースされているため、おそらくSSMSは今年または来年の終わりにクロスプラットフォームになります。 コマンドラインの操作に関しては、Linuxで実行されている2つのユーティリティmssql-scripterDBFCが既にあります 。 SQL Serverを操作するための便利なツールがいくつあるかを評価するには、現在200を超えるユーティリティとプログラムをリストしている私のリストをチェックしください。 Linuxへの適応は、最終バージョンのリリースとともに実装されると思います。 今のところ、LinuxユーザーはManagement Studioのリリースを待つ必要があります。 そして、ほとんどの開発者、特にVisual Studioに出くわした開発者はそれを好むと確信しています。



PG Day:ワークショップでは、クエリの最適化に非常に大きなセクションを割くことを計画しました。 最適化のどの側面について詳しく説明しますか? リスナーはあなたにどんなタスクを解決できますか?



KT :はい、資料のこの部分は単純に巨大であり、個別のトレーニングを手配する必要があります。 しかし、私が利用できる時間内に、SQL Server Management Studioのクエリ最適化の魅力をすべてお見せします。 SSMSは非常に活発に開発されており、クエリを最適化するために単純に設計されています。 同時に、SQL Serverの新機能をサポートする新しいバージョンが2か月ごとにリリースされます。 わずか6か月前に登場し、現在は大幅に時間を節約している「キラー機能」は、クエリ実行計画をリアルタイムで表示することです。



最適化プロセスでは、クエリの完了を常に待機して、使用された統計、オプティマイザーが特定の操作を選択するために行った仮定、テーブル内の行数について行った推定を理解する必要があります。 これらはすべて、推定クエリ実行計画の助けを借りて見ることができますが、実際の計画とは大きく異なる場合があります。 したがって、重要なリクエストを本当に最適化する必要がある場合は、実際の実行計画が必要です。



バージョン16.4以降、Management Studioはリアルタイムのクエリ実行プランを提供できます。 , , , , , : , join. “”, , , , . Management Studio , . , , “-”. , Oracle, , 2-3 .



, Management Studio . , XML Management Studio . GUI : , . , - , – . , , .



. SQL Server, : , . , 2012 SQL Server , , . .



PG Day: . – .



: , . - . - , .



PG Day: - , , ? “”, MS SQL Server, ?



: , , : Stack Overflow, github, .. SQL Server, , , .



, , SQL Server – . , , , , . , .



. #slack, twitter ( ). Github , SQL Server , SQL Server – .



- #sqlhelp , , .



sqlcom.ru : telegram-, SQL. , SQL Server, : , #, .. , , , .







, MS SQL Server, , . PG Day'17 Russia - , SQL Server: , Linux Windows, , !



All Articles