IBM Cloud Docs
クラウド・データ用の SQL データベース

クラウド・データ用の SQL データベース

このチュートリアルでは、費用が発生する場合があります。 コスト見積もりツールを使用して、予測使用量に基づいてコスト見積もりを生成します。

このチュートリアルでは、SQL (リレーショナル) データベース・サービスをプロビジョンする方法について説明します。 管理者は、表を作成し、大きなデータ・セット (都市情報) をデータベースにロードします。 次に、Web アプリケーション「world訴えた」を IBM Cloud® Code Engineにデプロイします。 このアプリを使用すると、通常のユーザーはクラウド・データベースからレコードを検索できます。 このアプリは 、Flaskフレームワークを使用して Python で書かれています。

" caption-side="bottom"}*のアーキテクチャ{: caption="

目標

  • SQL データベースをプロビジョンする
  • データベース・スキーマ (表) を作成し、データをロードします
  • 事前作成されたコンテナー化アプリを Code Engine にデプロイします。
  • アプリとデータベース・サービスを接続する (資格情報を共有する)
  • クラウド・データベースのモニター、保護、バックアップ & リカバリー

開始前に

このチュートリアルでは、以下が必要です。

  • IBM Cloud CLI ( Code Engine プラグインを使用)
  • git ソースコードリポジトリを複製する。

これらのツールのインストールを回避するには、 Cloud Shell IBM Cloudから使用できます。

ご使用のオペレーティング環境でこれらのツールをダウンロードおよびインストールするための手順は、チュートリアルの概説ガイドに記載されています。

  1. このチュートリアルの Github リポジトリー を複製し、そのディレクトリーに移動します。 端末で、以下の行を実行します。
    git clone https://github.com/IBM-Cloud/cloud-sql-database.git
    cd cloud-sql-database
    
  2. GeoNames にアクセスし、ファイル cities1000.zipをダウンロードして解凍します。 この中には、人口が 1000 人を超える市区町村に関する情報が入っています。 これをデータ・セットとして使用します。

SQL データベースをプロビジョンする

IBM Db2 Warehouse SaaS のインスタンスを作成することから始めます。

  1. IBM Cloud®に アクセスしてください。 上部ナビゲーション・バーの 「カタログ」 をクリックします。
  2. 左側ペインの 「データベース」 をクリックして、「Db2 Warehouse」 を選択します。
  3. 「Flex One」 プランを選択し、提示されたサービス名を 「sqldatabase」 に変更します (後でこの名前を使用します)。 データベースのデプロイメントのリソース・グループとロケーションを選択します。
  4. 「作成」 をクリックします。 プロビジョニングが開始されます。
  5. リソースリストで、 データベースの下に新しいインスタンスを見つけ、利用可能になるまで待ちます(ページを更新する必要がある場合もあります)。 IBM Db2 Warehouse SaaS サービスに関するエントリーをクリックします。
  6. 「コンソールを開く」 をクリックして、データベース・コンソールを起動します。

表を作成する

サンプル・データをデータを格納する表が必要です。 コンソールを使用して表を作成します。

  1. IBM Db2 Warehouse SaaSのコンソールで、左上のメニューアイコンをクリックし、ナビゲーションバーの 「SQLを実行」をクリックします
  2. 「Untitled-1」 タブの横にある 「+」 記号 (「Add a new script」) をクリックします。
  3. 「ファイルから」 をクリックし、以前にローカル・ディレクトリーに複製した GitHub リポジトリーからファイル cityschema.txt を選択して開きます。
  4. 「すべて実行 (Run all)」 をクリックして、ステートメントを実行します。 成功メッセージが表示されるはずです。

データをロードする

表「cities」が作成されたので、その中にデータをロードします。 これは、ローカルマシンやクラウドオブジェクトストレージ(COS Amazon S3 フェースなど、さまざまな方法で行うことができます。 このチュートリアルでは、マシンからデータをアップロードします。 このプロセスの中で、表の構造とデータ形式をファイル内容に完全に対応するように合わせます。

  1. IBM Db2 Warehouse SaaS のコンソールで、左上のメニュー・アイコンをクリックし、ナビゲーション・バーの 「データ」 をクリックします。

  2. 「ソース」 として、 「マイ・コンピューター」 の選択を保持します。

  3. ファイル選択 の下にある ファイルをここにドラッグするか、ファイルを参照してください をクリックして、このガイドの最初のセクションでダウンロードしたファイル「 cities1000.txt 」を見つけて選択します。

  4. 「次へ」 をクリックして、 「スキーマ」 を選択した 「ターゲット」 の概要に移動します。 スキーマ BLUADMIN を選択し、 テーブルCITIES を選択します。 もう一度 「次へ」 をクリックします。

    この表は空ですので、既存のデータに追加するか既存のデータを上書きするかは関係ありません。

  5. 次は、ロード・プロセスでファイル「cities1000.txt」のデータを解釈する方法をカスタマイズします。 まず、このファイルにはデータしか入っていないので、「最初の行をヘッダーとする (Header in first row)」 を無効にします。

  6. 次に、区切り文字として 「0x09」 と入力します。 これは、ファイル内の値がタブ (タブ文字) で区切られていることを意味します。

  7. 最後に、日付形式として「YYYY-MM-DD」を選択します。 これで、すべてがこのスクリーンショットで示されているものと同様の表示になっているはずです。

    サンプル・データを示す画面キャプチャー
    サンプル・データを示す画面キャプチャー

  8. 「次へ」 をクリックすると、ロード設定の確認画面が表示されます。 同意して 「ロードの開始 (Begin Load)」 をクリックし、「CITIES」 表へのデータのロードを開始します。 進行状況が表示されます。 データがアップロードされれば、ほんの数秒でロードは完了するはずです。いくつかの統計が表示されます。

  9. 「表の表示 (View Table)」 」をクリックしてデータを参照します。 スクロールダウンするか、列名をクリックして、ソート順を変更することもできます。

ロードされたデータを SQL を使用して確認する

データがリレーショナル・データベースにロードされました。 エラーはありませんでしたが、いくつかの簡単なテストを実行する必要があります。 組み込みの SQL エディターを使用して、いくつかの SQL ステートメントを入力し、実行します。

  1. 左側のナビゲーションで 「SQLを実行」 をクリックすると、SQLエディタに戻ることができます。 「+」 記号 ( 「新規スクリプトの追加」 ) をクリックし、「新規作成」 をクリックして、新しいエディター・タブを作成します。

    組み込みの SQL エディターの代わりに、デスクトップまたは IBM Db2 Warehouse SaaS のサーバー・マシンで、クラウド・ベースや従来型の SQL ツールを使用することもできます。 接続情報は、左側のナビゲーションの 「管理」 メニューにあります。

  2. エディターで、以下の照会を入力またはコピーします。

    select count(*) from cities;
    

    照会のテキストを選択し、 「すべて実行」 の横のドロップダウンで 「選択した項目を実行」 を選択します。 結果のセクションには、ロードプロセスで報告されたのと同じ行数が表示されるはずです。

  3. 「SQL エディター」で、次のステートメントを新しい行に入力します。

    select countrycode, count(name) from cities
    group by countrycode
    order by 2 desc;
    

    上記のステートメントのテキストにマークを付けて、 「選択した項目を実行」 ボタンをクリックします。 このステートメントのみが実行され、結果セクションに国別の統計情報が表示されます。

  4. 最後に、以下のステートメントを同様に実行して、カリフォルニアのサンフランシスコに関する詳細を取得します。

    select * from cities
    where name='San Francisco'
    and countrycode='US';
    

アプリケーション・コードをデプロイする

端末に戻ります。 次に、事前作成されたコンテナー・イメージを使用して、アプリケーション・コードをデプロイします。 アプリケーション・コードを変更し、コンテナー・イメージを自分でビルドすることができます。 詳しくは、 GitHub リポジトリーの手順 を参照してください。

  1. ログインしていない場合は、 ibmcloud login または ibmcloud login --sso を使用して対話的にログインしてください。 リージョンとリソース・グループを、データベースがプロビジョンされている場所に設定します。 RESOURCE_GROUP および REGION を適宜置き換えます。

    ibmcloud target -g RESOURCE_GROUP -r REGION
    
  2. sqldatabase という名前の新規 Code Engine プロジェクトを作成します。

    ibmcloud ce project create --name sqldatabase
    

    新規プロジェクトをアクティブ・プロジェクトとして選択します。

    ibmcloud ce project select --name sqldatabase
    
  3. 次に 、worldcities という名前のアプリを展開します。

    ibmcloud ce app create --name worldcities --image icr.io/solution-tutorials/tutorial-cloud-sql-database:latest --min-scale 1
    
  4. 最後に、既存の IBM Db2 Warehouse SaaS データベースとアプリケーションの間のサービス・バインディングを作成します。

    ibmcloud ce application bind --name worldcities --service-instance sqldatabase
    

    バインディングが作成されると、新しいアプリ・リビジョンが開始されます。

  5. アプリの詳細を確認して、ステータスと URL を取得できます

    ibmcloud ce app get --name worldcities
    

    出力結果で、 URL で始まる行を探します。 表示URLは、 https://worldcities.unique-subdomain.region.codeengine.appdomain.cloud のようなパターンである必要があります。 リンクをクリックしてアプリにアクセスします。 アプリの詳細情報を取得する別の方法としては Code Engineにアクセスする方法があります。

セキュリティー、バックアップ & リカバリー、モニタリング

IBM Db2 Warehouse SaaS は、マネージド・サービスです。 環境の保護、日常的なバックアップおよびシステムのモニタリングは、IBM が行います。 エンタープライズ・プランの 1 つを使用している場合、 アクセスを管理するためのいくつかのオプション と、 拡張データ暗号化 を構成するためのいくつかのオプションがあります。

従来の管理オプションに加えて、 IBM Db2 Warehouse SaaS サービスは、モニター、ユーザー管理、ユーティリティー、ロード、ストレージ・アクセスなどのための REST API も提供します

アプリをテストする

ロードしたデータ・セットに基づいて市区町村情報を表示するこのアプリは、最小限に切り詰められています。 このアプリは、1 つの市区町村名 (名前には大/小文字の区別があります) といくつかの事前構成された市区町村を指定できる検索フォームを表示します。 これらは、/search?name=cityname (検索フォーム) または /city/cityname (直接指定された市区町村) のいずれかに変換されます。 どちらの要求もバックグラウンドでは同じコード行で処理されます。 cityname は、セキュリティ上の理由から、パラメータマーカーを使用して準備されたSQL文に値として渡されます。 行がデータベースから取り出され、HTML テンプレートに渡されてレンダリングされます。

クリーンアップ

チュートリアルで使用したリソースをクリーンアップするには、以下の手順を実行します。

  1. IBM Cloud® リソース・リストにアクセスします。
  2. Code Engine セクションで、プロジェクト sqldatabase を見つけます。 3 つのドットをクリックし、 「削除」 を選択して、プロジェクトとそのアプリケーションを削除します。
  3. 「データベース」 の下でデータベース sqldatabase を見つけます。 再度、3 つのドットをクリックし、 「削除」 を選択してデータベースを削除します。

リソースによっては、即時に削除されずに保持される場合があります (デフォルトでは 7 日間)。 リソースを完全に削除して再利用することも、保存期間内に復元することもできます。 リソースの再利用を使用する方法については、この資料を参照してください。

チュートリアルを発展させる

このアプリを機能拡張しますか? 以下にいくつかのアイデアを示します。

  1. 代替名をワイルドカード検索できるようにする。
  2. 特定の国および特定の人口値の市区町村のみを検索する。
  3. CSS スタイルを置換し、テンプレートを拡張して、ページ・レイアウトを変更する。
  4. 例えば人口などの既存データの更新、あるいは新しい都市情報のフォームベースでの作成を許可します。

関連コンテンツ