MariaDB からのデータを使用する

AppSheet は、Google Cloud SQL、Amazon RDS、またはその他の MariaDB をサポートするクラウド ホスティング プロバイダでホストされている MariaDB データベースからアプリを構築できます。

MariaDB データソースを追加する

AppSheet アカウントに MariaDB データソースを追加するには:

  1. [My Account] > [Sources] タブに移動します。
  2. [+ New Data Source] をクリックします。
  3. データソースの名前を入力し、[Cloud Database] または [On-premises Database] をクリックします。
    [Add database connection information] ダイアログが表示されます。
  4. データベースの接続情報を構成します。 
    • [Type]: [MariaDB] を選択します。
    • [Server]: MariaDB データベース サーバーのホスト名または IP アドレスを入力します。
    • [Database]: データベース名を入力します。
    • [Username]: データベース ユーザーのユーザー名を入力します。
    • [Password]: データベース ユーザーのパスワードを入力します。
    • [SSL]: 接続に必要な SSL モードを選択します。詳細については、SSL を使用するをご覧ください。
  5. [Test] をクリックして接続の詳細をテストします。
  6. テストが成功したら、[Authorize Access] をクリックして、AppSheet アカウントにデータソースを保存します。

AppSheet が MariaDB データにアクセスするには、MariaDB インスタンスがクラウド(Google Cloud SQLd、Amazon RDS、またはその他のクラウド ホスティング プロバイダ)でホストされている必要があります。

AppSheet サーバーがデータにアクセスするには、ネットワークと MariaDB の両方が、AppSheet サーバーからデータベースへの受信接続を受け入れる必要があります。詳しくは、IP アドレスとファイアウォール情報を管理するをご覧ください。

MariaDB データソースがアカウントに追加されると、データソース内のテーブルまたはビューを任意のアプリに追加できます。アプリで [+ New Table] をクリックすると、特定のデータソースと、そのデータ・ソースからのテーブルまたはビューを選択できます。

アプリに追加されると、AppSheet はすべてのデータソースを同様に扱います。実際、MariaDB データソースからのデータと他のソースからのデータを同じアプリ内で組み合わせることは一般的であり、自然なことです。

SSL を使用する

AppSheet は、セキュア ソケット レイヤ(SSL)接続を使用して MariaDB インスタンスに接続することもできます。内部的には、MariaDB には次の 3 つの主要接続モードがあります。

  • No SSL: このモードでは SSL 接続は必要ありませんが、クラウド プロバイダによっては引き続き可能な限り SSL の確立を試みます。
  • SSL required: このモードでは、MariaDB インスタンスとの間のデータは SSL プロトコルを使用して暗号化する必要があります。ただし、接続を確立するために必要なのは、(MariaDB インスタンスが所有する)サーバー証明書だけです。クライアント証明書(通常はアプリケーション クライアントに保存されています)は任意です。
  • X.509: このモードでは、SSL 接続を確立するために、サーバー証明書とクライアント証明書の両方が必要となります。現在、AppSheet のサーバーにクライアント証明書を保存することはできないため、このモードはサポートされていません。

2 番目のモードを使用して SSL 接続を有効にするには、MariaDB データソースの設定時に Require SSL を選択します。MariaDB インスタンスが X.509 モードを使用するように設定されている場合、接続を機能させるために接続モードを SSL に変更する必要があります。Google Cloud でホストされているインスタンスでは、[SSL] タブで [Allow unsecured connections] をクリックすることで、X.509 モードをオフにできます。これにより、Google によるクライアント証明書の要件が緩和されます。

SSL 接続を使用する場合、MariaDB インスタンスは VeriSign や GeoTrust など広く認知されている認証局によって生成されたサーバー証明書を使用することを強くおすすめします。これにより、証明書が関連するすべての暗号化基準とフォーマット基準を確実に満たすことになります。Google Cloud や Amazon RDS など、一部のクラウド ストレージ プロバイダも、ホストしている MariaDB インスタンス用にサーバー証明書を生成しています。現在、TinyCA によって生成されたサーバー証明書はサポートされていません。

また、SHA-2 ハッシュ アルゴリズムを使ってサーバー証明書に署名することもおすすめします。これは、SHA-1 アルゴリズムはもはや完全に安全とはみなされず、Microsoft、Amazon、Google を含む多くのクラウド プロバイダが SHA-2 や SHA-3 への移行を進めているからです。

Amazon RDS で MariaDB を使用する

MariaDB インスタンスが Amazon RDS でホストされている場合、[Publicly Accessible] 設定を [Yes] に設定する必要があります。サーバーが AppSheet からのトラフィックを確実に受け入れるようにするには、Amazon RDS のセキュリティ グループ設定に移動し、EC2 Management Console に入り、[Edit inbound rules] を選択して、AppSheet の IP アドレスからのすべてのトラフィックを受け入れるルールを作成します。これについては、IP アドレスとファイアウォール情報を管理するをご覧ください。

[Create Security Group] ダイアログ

[Edit inbound rules] ダイアログ

IDENTITY 列を使用する

データベースのテーブルでは、IDENTITY 列をキーとして使用するのが一般的です。IDENTITY 列の値はデータベースによって自動的に挿入される自動インクリメントの数です。そのようなテーブルを AppSheet で使用すると、問題が発生することがあります。デフォルトでは、SQL を使用してアプリケーションに IDENTITY 列の値を定義することはできません。しかし、AppSheet では、アプリがオフラインの可能性があるときに新しい行が作成され、後で同期されてしまう場合があります。そのため、アプリは key/IDENTITY 値の割り当てができなければなりません。

最も良い解決策は、データベース スキーマで IDENTITY 列キーを完全に避けることです。代わりに、NVARCHAR(8) の列(または一般的には 8 以上の長さの NVARCHAR)を使用します。このキーの AppSheet の列の定義で、UNIQUEID() の初期値を指定します。これで、アプリによって一意のキー値が割り当てられ、バックエンドのデータベースに挿入できるようになります。

データベースが IDENTITY 列を使用しなければならない場合には、大きい初期シードを使用して作成することをおすすめします。たとえば、AUTO_INCREMENT = 100000 を設定します。このキーの AppSheet の列の定義で、RANDBETWEEN(10000, 99999) の初期値を指定します。これで、アプリから作成されたレコードには 10000 から 99999 の範囲でランダムに配置される 5 桁の値が含まれるようになり、データベースに対して直接作成されたレコードの値はより高くなります。

データベースのスキーマを変更できず、IDENTITY 列がすでにデフォルトの初期シード(1)で使用されている場合は、前述の方法と同じ手順を行うことをおすすめします。ただし、まず以下のように IDENTITY シードを手動で増やすことができます。

ALTER TABLE テーブル名 AUTO_INCREMENT = 100000;

これにより、必要な範囲に IDENTITY 列が「再シード」されるはずです。AppSheet アプリは RANDBETWEEN() 関数で指定された範囲の値を AppSheet 列定義の初期値に挿入します。

アプリで作成したファイルを保存する

データベース サーバーは、ファイル システムを持たないという点で、他のクラウド ストレージ プロバイダと異なります。これにより、ファイル(画像やドキュメントなど)を保存する際の AppSheet の動作が変更されます。アプリが写真をキャプチャする必要がある場合、それらは通常、クラウド ストレージのデータソースの隣のフォルダに保存されます。ただし、MariaDB テーブルの場合、画像ファイルとドキュメント ファイルは、アプリ作成者のプライマリ AppSheet アカウントに関連付けられたメインのクラウド ファイル システム(通常は Google ドライブ/Dropbox/Office 365/Box)に保存されます。ファイルは、アカウントのデフォルトのフォルダパスのサブフォルダ(通常、/appsheet/data)に保存されます。アカウント ページの [Settings] タブで、デフォルトのフォルダパスの表示や変更ができます。

特殊文字を使用する

MariaDB 文字セットは、特定の MariaDB データベースまたはテーブルで読み取りおよび処理できる文字を定義します。MariaDB データベースのデフォルトの文字セットは、ほとんどのラテン文字で動作するはずです。しかし、スペイン語や中国語など多くの言語には、デフォルトの文字セットに含まれていない特殊文字があります。これらの特殊文字を使用するには、適切な文字セットを使用するように MariaDB データベースまたはテーブルを構成する必要があります。

たとえば、スペイン語の特殊文字(ñ など)を使用するようにデータベース全体を構成するには、次のコマンドを使用します。

ALTER DATABASE db_name CHARACTER SET = 'utf8' COLLATE = 'utf8_spanish_ci';

また、1 つのテーブルだけを設定するには、次のコマンドを使用します。

ALTER TABLE db_table CONVERT TO CHARACTER SET utf8 COLLATE utf8_spanish_ci;

MariaDB で使用可能な文字セットについての詳細は、こちらをご覧ください。

https://mariadb.com/kb/en/library/setting-character-sets-and-collations

この情報は役に立ちましたか?

改善できる点がありましたらお聞かせください。
検索
検索をクリア
検索を終了
メインメニュー
16886243995899682259
true
ヘルプセンターを検索
true
true
true
false
false