Amazon DynamoDB Connector for CData Sync

Build 23.0.8839
  • Amazon DynamoDB
    • 接続の確立
      • データアクセスのファインチューニング
      • パフォーマンス
      • IAM 最小権限
    • NoSQL データベース
      • 自動スキーマ検出
      • 垂直フラット化
      • JSON 関数
      • DynamoDB クエリ
      • ドキュメントとリストのクエリ
      • データ型マッピング
      • カスタムスキーマ定義
      • カスタムスキーマ例
    • 高度な機能
      • SSL の設定
      • ファイアウォールとプロキシ
    • データモデル
      • テーブル
      • テーブル列
    • 接続文字列オプション
      • Connection
        • UseLakeFormation
      • AWS Authentication
        • AuthScheme
        • Domain
        • AWSAccessKey
        • AWSSecretKey
        • AWSRoleARN
        • AWSRegion
        • AWSCredentialsFile
        • AWSCredentialsFileProfile
        • AWSSessionToken
        • AWSExternalId
        • MFASerialNumber
        • MFAToken
        • TemporaryTokenDuration
        • AWSCognitoRegion
        • AWSUserPoolId
        • AWSUserPoolClientAppId
        • AWSUserPoolClientAppSecret
        • AWSIdentityPoolId
      • SSO
        • User
        • Password
        • SSOLoginURL
        • SSOProperties
        • SSOExchangeUrl
      • SSL
        • SSLServerCert
      • Firewall
        • FirewallType
        • FirewallServer
        • FirewallPort
        • FirewallUser
        • FirewallPassword
      • Proxy
        • ProxyAutoDetect
        • ProxyServer
        • ProxyPort
        • ProxyAuthScheme
        • ProxyUser
        • ProxyPassword
        • ProxySSLType
        • ProxyExceptions
      • Logging
        • LogModules
      • Schema
        • Location
        • BrowsableSchemas
        • Tables
        • Views
      • Miscellaneous
        • AutoDetectIndex
        • FlattenArrays
        • FlattenObjects
        • FlexibleSchema
        • GenerateSchemaFiles
        • IgnoreTypes
        • MaximumRequestRetries
        • MaxRows
        • Other
        • Pagesize
        • PseudoColumns
        • QueryMode
        • RetryWaitTime
        • RowScanDepth
        • SeparatorCharacter
        • ThreadCount
        • Timeout
        • TypeDetectionScheme
        • UseBatchWriteItemOperation
        • UseConsistentReads
        • UserDefinedViews
        • UseSimpleNames

Amazon DynamoDB Connector for CData Sync

概要

CData Sync App は、Amazon DynamoDB データをデータベース、データレイク、またはデータウェアハウスに継続的にパイプライン化する簡単な方法を提供し、分析、レポート、AI、および機械学習で簡単に利用できるようにします。

Amazon DynamoDB コネクタはCData Sync アプリケーションから使用可能で、Amazon DynamoDB からデータを取得して、サポートされている任意の同期先に移動できます。

Amazon DynamoDB バージョンサポート

Sync App はAmazon DynamoDB REST API のバージョン2012-08-10を使用しています。

Amazon DynamoDB Connector for CData Sync

接続の確立

Amazon DynamoDB への接続を追加

Amazon DynamoDB への接続を追加するには:

  1. アプリケーションコンソールで、接続ページに移動します。
  2. 接続の追加パネルで、追加したい接続のアイコンを選択します。
  3. Amazon DynamoDB アイコンが利用できない場合は、Add More アイコンをクリックしてCData サイトからAmazon DynamoDB コネクタをダウンロードおよびインストールします。

必須プロパティについては、設定タブを参照してください。

通常必須ではない接続プロパティについては、高度な設定タブを参照してください。

DynamoDB への接続

以下を設定してデータに接続します。

  • Domain:AWS に関連付けられたドメイン名を使用する場合に設定。
  • AWSRegion:Amazon DynamoDB データがホストされているリージョンに設定。

DynamoDB への認証

AWS キーを取得

IAM ユーザーの認証情報を取得するには:
  1. IAM コンソールにサインインします。
  2. ナビゲーションペインでユーザーを選択します。
  3. ユーザーのアクセスキーを作成または管理するには、ユーザーを選択してからセキュリティ認証情報タブを選択します。
AWS ルートアカウントの資格情報を取得するには:
  1. ルートアカウントの認証情報を使用してAWS 管理コンソールにサインインします。
  2. アカウント名または番号を選択します。
  3. 表示されたメニューでMy Security Credentials を選択します。
  4. ルートアカウントのアクセスキーを管理または作成するには、Continue to Security Credentials をクリックし、[Access Keys]セクションを展開します。

ルートクレデンシャル

アカウントのルートクレデンシャルで認証するには、次の設定パラメータを設定します。

  • AuthScheme:AwsRootKeys。
  • AWSAccessKey:AWS ルートアカウントに紐づいているアクセスキー。
  • AWSSecretKey:AWS ルートアカウントに紐づいているシークレットキー。

Note: この認証スキームの使用は、簡単なテスト以外ではAmazon では推奨されていません。アカウントのルート認証情報はユーザーの完全な権限を持つため、これが最も安全性の低い認証方法になります。

一時クレデンシャル

一時クレデンシャルで認証するには、次を設定します。

  • AuthScheme:TemporaryCredentials。
  • AWSAccessKey:ロールを担うIAM ユーザーのアクセスキー。
  • AWSSecretKey:ロールを担うIAM ユーザーのシークレットキー。
  • AWSSessionToken:一時クレデンシャルと共に提供されるAWS のセッショントークン。 詳細はAWS Identity and Access Management ユーザーガイド を参照してください。

Sync App は、一時クレデンシャルの有効期間中、長期的な認証情報(IAM ユーザー認証情報など)によって提供されるものと同じ権限を使用してリソースをリクエストできるようになりました。

一時クレデンシャルおよびIAM ロールの両方を使用して認証するには、上記のすべてのパラメータを設定し、さらに以下のパラメータを指定します。

  • AWSRoleARN:認証したいロールのRole ARN を指定。これにより、Sync App は指定されたロールの認証情報を取得しようと試みます。
  • AWSExternalId(オプション):別のAWS アカウントでロールを引き受ける場合にのみ必要です。

EC2 Instances

AuthScheme をAwsEC2Roles に設定します。

EC2 インスタンスからSync App を使用していて、そのインスタンスにIAM ロールが割り当てられている場合は、 認証にIAM ロールを使用できます。Sync App は自動的にIAM ロールの認証情報を取得し、それらを使って認証するため、AWSAccessKey およびAWSSecretKey を指定する必要はありません。

認証にIAM ロールも使用している場合は、さらに以下を指定する必要があります。

  • AWSRoleARN:認証したいロールのRole ARN を指定。これにより、Sync App は指定されたロールの認証情報を 取得しようと試みます。
  • AWSExternalId(オプション):別のAWS アカウントでロールを引き受ける場合にのみ必要です。

IMDSv2 サポート

Amazon DynamoDB Sync App は、IMDSv2 をサポートしています。IMDSv1 とは異なり、新バージョンでは認証トークンが必須です。エンドポイントおよびレスポンスは、両バージョンで同じです。

IMDSv2 では、Amazon DynamoDB Sync App はまずIMDSv2 メタデータトークンの取得を試み、それを使用してAWS メタデータエンドポイントを呼び出します。トークンを取得できない場合、Sync App はIMDSv1 を使用します。

AWS IAM Roles

AuthScheme をAwsIAMRoles に設定します。

多くの場合、認証にはAWS ルートユーザーのダイレクトなセキュリティ認証情報ではなく、IAM ロールを使用することをお勧めします。AWS ルートユーザーのAWSAccessKey およびAWSSecretKey を指定している場合、ロールは使用できない場合があります。

AWS ロールとして認証するには、次のプロパティを設定します。

  • AWSAccessKey:ロールを担うIAM ユーザーのアクセスキー。
  • AWSSecretKey:ロールを担うIAM ユーザーのシークレットキー。
  • AWSRoleARN:認証したいロールのRole ARN を指定。これにより、Sync App は指定されたロールの認証情報を 取得しようと試みます。
  • AWSExternalId(オプション):別のAWS アカウントでロールを引き受ける場合にのみ必要です。

ADFS

ADFS に接続するには、AuthScheme をADFS に設定し、次のプロパティを設定します。

  • User:ADFS ユーザー。
  • Password:ADFS ユーザーのパスワード。
  • SSOLoginURL:SSO プロバイダーのログインURL。

接続文字列の例:

AuthScheme=ADFS; AWSRegion=Ireland; [email protected]; Password=CH8WerW121235647iCa6; SSOLoginURL='https://adfs.domain.com'; AWSRoleArn=arn:aws:iam::1234:role/ADFS_SSO; AWSPrincipalArn=arn:aws:iam::1234:saml-provider/ADFSProvider; S3StagingDirectory=s3://athena/staging;

ADFS 統合

ADFS 統合フローでは、現在ログインしているWindows ユーザーの資格情報で接続します。 ADFS 統合フローを使用するには、User およびPassword を指定せず、それ以外の設定は上記のADFS ガイドと同じ手順を実行してください。

Okta

Okta に接続するには、AuthScheme をOkta に設定し、次のプロパティを設定します。

  • User:Okta ユーザー。
  • Password:Okta ユーザーのパスワード。
  • SSOLoginURL:SSO プロバイダーのログインURL。

Okta クライアントリクエストコンテキストをオーバーライドする信頼されたアプリケーションまたはプロキシを使用する場合、またはMFA を設定している場合は、Okta を使用して認証するためにSSOProperties を組み合わせて使用する必要があります。必要に応じて、以下のいずれかを設定します。

  • APIToken:Okta クライアントリクエストコンテキストをオーバーライドする、信頼されたアプリケーションまたはプロキシ経由でユーザーを認証する場合、これを顧客がOkta 組織で作成したAPI Token に設定します。
  • MFAType:MFA フローを設定した場合、次の対応するタイプのいずれかに設定します:OktaVerify、Email、またはSMS。
  • MFAPassCode:MFA フローを設定した場合は、有効なパスコードに設定します。
    これを空欄または無効な値に設定した場合、Sync App はユーザーのデバイスまたはE メールにワンタイムパスワードチャレンジを発行します。パスコードを受信後、取得したワンタイムパスワードをMFAPassCode 接続プロパティに設定する接続を再度開きます。
  • MFARememberDevice:デフォルトはTrue です。Okta は、MFA が必要な場合にデバイスを記憶させることをサポートします。設定された認証ポリシーに従ってデバイスの記憶が許可されている場合、Sync App はMFA 認証の有効期間を延長するデバイストークンを送信します。MFA を記憶させない場合は、この 変数をFalse に設定してください。

接続文字列の例:

AuthScheme=Okta; AWSRegion=Ireland; [email protected]; Password=CH8WerW121235647iCa6; SSOLoginURL='https://cdata-us.okta.com/home/amazon_aws/0oa35m8arsAL5f5NrE6NdA356/272'; SSOProperties='ApiToken=01230GGG2ceAnm_tPAf4MhiMELXZ0L0N1pAYrO1VR-hGQSf;'; AWSRoleArn=arn:aws:iam::1234:role/Okta_SSO; AWSPrincipalARN=arn:aws:iam::1234:saml-provider/OktaProvider; S3StagingDirectory=s3://athena/staging;

PingFederate に接続するには、AuthScheme をPingFederate に設定し、次のプロパティを設定します。

  • User:PingFederate ユーザー。
  • Password:PingFederate ユーザーのパスワード。
  • SSOLoginURL:SSO プロバイダーのログインURL。
  • AWSRoleARN(オプション):複数のロールARN がある場合は、認可に使用するARN を指定します。
  • AWSPrincipalARN(オプション):複数のプリンシパルARN がある場合は、認可に使用するARN を指定します。
  • SSOExchangeUrl:SP Connections -> SP Connection -> WS-Trust -> Protocol Settings の下にあるPingFederate サーバーインスタンスで設定されるPartner Service Identifier URI。これはPingFederate SP Connection を一意に識別する必要があるため、AWS SSO ACS URL に設定することを推奨します。Authentication フィールドの横にあるAWS SSO -> Settings -> View Details の下で確認できます。
  • SSOProperties(オプション):Amazon S3へのリクエストにユーザー名とパスワードを認可ヘッダーとして含める場合は、Authscheme=Basic。

SSOLoginURL 用の相互SSL 認証(WS-Trust STS エンドポイント)を有効化するには、次の SSOProperties を設定します。

  • SSLClientCert
  • SSLClientCertType
  • SSLClientCertSubject
  • SSLClientCertPassword

接続文字列の例:

authScheme=pingfederate;SSOLoginURL=https://mycustomserver.com:9033/idp/sts.wst;SSOExchangeUrl=https://us-east-1.signin.aws.amazon.com/platform/saml/acs/764ef411-xxxxxx;user=admin;password=PassValue;AWSPrincipalARN=arn:aws:iam::215338515180:saml-provider/pingFederate;AWSRoleArn=arn:aws:iam::215338515180:role/SSOTest2;

多要素認証(MFA)

多要素認証を必要とするユーザーおよびロールには、以下を指定してください。

  • AuthScheme:AwsMFA。
  • CredentialsLocation:MFA クレデンシャルが保存される設定ファイルの場所。詳しくは、接続文字列オプションのCredentials File Location のページを参照してください。
  • MFASerialNumber:MFA デバイスが使用されている場合は、そのシリアル番号。
  • MFAToken:MFA デバイスから利用できる一時トークン。
(すでにEC2 インスタンスなどで接続されているのではなく)AWS に接続している場合は、追加で以下を指定する必要があります。
  • AWSAccessKey:MFA が発行されるIAM ユーザーのアクセスキー。
  • AWSSecretKey:MFA が発行されるIAM ユーザーのシークレットキー。
認証にIAM ロールも使用している場合は、さらに以下を指定する必要があります。
  • AWSRoleARN:認証したいロールのRole ARN を指定。これにより、Sync App はMFA を使用して指定されたロールの認証情報を 取得しようと試みます。
  • AWSExternalId(オプション):別のAWS アカウントでロールを引き受ける場合にのみ必要です。
これにより、Sync App は一時的な認証情報を取得するために、リクエストでMFA 認証情報を送信します。

Note: 一時的な認証情報の有効期間(デフォルトは3600秒)を制御するには、TemporaryTokenDuration プロパティを設定します。

クレデンシャルファイル

認証にはクレデンシャルファイルを使用することができます。AccessKey/SecretKey 認証、一時クレデンシャル、ロール認証、またはMFA に関連するすべての設定が使用できます。 これを行うには、次のプロパティを設定して認証します。

  • AuthScheme:AwsCredentialsFile。
  • AWSCredentialsFile:クレデンシャルファイルの場所。
  • AWSCredentialsFileProfile(オプション):指定したクレデンシャルファイルから使用するプロファイルの名前。指定しない場合は、default という名前のプロファイルが使用されます。
詳細はAWS Command Line Interface ユーザーガイド を参照してください。

AWS Cognito クレデンシャル

AWS Cognito のユーザープールに登録されたユーザーでSync App を使用する場合は、以下のプロパティを設定して認証してください。

  • AuthScheme:AwsCognitoSrp に設定(推奨)。また、AwsCognitoBasic を使用することもできます。
  • AWSCognitoRegion:ユーザープールのリージョンに設定。
  • AWSUserPoolId:ユーザープールのId に設定。
  • AWSUserPoolClientAppId:ユーザープールのアプリクライアントId に設定。
  • AWSUserPoolClientAppSecret:ユーザープールのクライアントシークレットに設定。
  • AWSIdentityPoolId:ユーザープールとリンクしているID プールのId に設定。
  • User:ユーザープールに登録されているユーザーのユーザー名に設定。
  • Password:ユーザープールに登録されているユーザーのパスワードに設定。

Amazon DynamoDB Connector for CData Sync

データアクセスのファインチューニング

データ型の推測

次のプロパティを使って、自動データ型検出を設定できます。デフォルトは有効です。

  • TypeDetectionScheme:このプロパティを使って、RowScanDepth で指定された値に基づく自動型検出を有効化/無効化できます。
  • RowScanDepth:このプロパティは、カラムのデータ型を判定するためにスキャンされる行数を指定します。
  • IgnoreTypes:無視してvarchar データ型として解決すべきデータ型。デフォルトではDate、Time、およびDatetime 型が無視されます。これは、Amazon DynamoDB がそれらを型としてサポートしていないためです。 これらのカラムのフィルタリングは、元のvarchar データ型としてのみ実行できます。

データアクセスのファインチューニング

次のプロパティを使って、Amazon DynamoDB API 機能およびSync App のストラテジーをさらに制御できます。

  • UseSimpleNames:Amazon DynamoDB は、多くのデータベース指向のツールがサポートしていない特殊文字を使った属性名をサポートしています。

    加えて、Amazon DynamoDB のテーブル名にはドットおよびダッシュを含めることができます。Sync App はテーブル名内のドットを階層区切りとして解釈し、XPath と同じようにネストされたフィールドをドリルダウンできます。

    このプロパティを使用すると、英数字以外の文字をアンダースコアで置き換えられます。

  • SeparatorCharacter:このプロパティを使用すると、ドキュメントとリストのクエリ ときにネストされたフィールドにより簡単にアクセスできます。このプロパティで階層区切りを指定します。デフォルトでは、これは '.'(ドット)文字です。

Amazon DynamoDB Connector for CData Sync

パフォーマンス

リトライインターバルの設定

次のプロパティを設定すると、"maximum throughput exceeded" などの一時的なエラーを返す代わりに、クエリを再試行できます。

  • RetryWaitTime:リクエストを再試行するためにSync App が待機する最小時間(ミリ秒数)。
  • MaximumRequestRetries:リクエストをリトライする最大回数。

また、CData Sync App には、クエリに応じて使い分けることができるPartiQL とScan という2つの独立したAPI があります。使用されるAPI は、実行されるクエリによって異なります。

PartiQL

PartiQL は、INSERT/update/delete リクエストクエリ、およびフィルタを含むselect クエリで使用されます。これは、PartiQL API に、従来のScan エンドポイントよりも高度なフィルタリング機能が含まれているためです。 一般的に、結果のかなりの部分がフィルタリングされているクエリは、フィルタリングがほとんどされていないクエリよりも実行速度が速くなることが予想されます。

効果的なページングの使用

Pagesize プロパティを使うと、アイテムのサイズおよびAmazon DynamoDB の1MB のページサイズを基に、プロビジョニングされたスループットの使用を最適化できます。このプロパティを、返すアイテム数に設定します。

一般的に、ページサイズが小さくなると、スロットルの原因となるスループットのスパイクが低減します。また、リクエスト間にポーズも挿入されます。この間隔はリクエストのディストリビューションを均等化し、スロットルを回避することでより多くのリクエストを成功するようにします。

Scans

Scan はフィルタを含まないSELECT クエリで発生します。この場合、すべての結果を取得する必要があるため、PartiQL API を使用するメリットはありません。 Scan を実行するとすべての結果が取得されますが、API には、フィルタリングされていないPartiQL クエリよりも優れたパフォーマンスを発揮する重要な機能があります:マルチスレッドです。

ThreadCount 接続プロパティを設定することで、Scan リクエスト実行時に使用するスレッド数を変更できます。使用するスレッド数が増えると、より多くのメモリが使用されますが、各スレッドの結果はより速くなります。 デフォルトは4です。この機能は、高スループットまたは変動するスループットがプロビジョニング済みのテーブルに最適です。

単一のスレッドでテーブルの最大スループットを超えてしまうようなケースでは、シングルスレッドのPartiQL API よりもScan を使うメリットはありません。 Amazon DynamoDB は、最大スループットを超えなくなるまで、すべてのスレッドを単純に制御します。

Amazon DynamoDB Connector for CData Sync

IAM 最小権限

We recommend using predefined roles for services rather than creating custom IAM policies. Predefined roles for Amazon DynamoDB are

  • AmazonDynamoDBReadOnlyAccess-grants read-only access to DynamoDB resources through the AWS Management Console.
  • AmazonDynamoDBFullAccess-grants full access to DynamoDB resources through the AWS Management Console.
If you want to create custom polices, use the roles described in the table below. Note that the specific policies required by the Amazon DynamoDB driver are subject to change in future releases. Amazon DynamoDB requires at a minimum the following permissions:

IAM RoleDescription
dynamodb:ListTablesRequired for getting a list of your DynamoDB tables. Used during metadata retrieval to dynamically determine the list of your tables. Note that this action does not support resource-level permissions and requires you to choose All resources (hence the * for "Resource").
In other words, the action dynamodb:ListTables needs a * Resource, and the other actions can be given permission to all the tables arn:aws:dynamodb:us-east-1:987654321098:table/* or to a list of specific tables:
          "Resource": [
              "arn:aws:dynamodb:us-east-1:987654321098:table/Customers",
              "arn:aws:dynamodb:us-east-1:987654321098:table/Orders"
          ]
dynamodb:DescribeTableRequired for getting metadata about the selected table. Used during table metadata retrieval to dynamically determine the list of the columns. This action supports resource-level permissions, so you can specify the tables you want to get the metadata from. For example, for the table Customers and Orders in the region Northern Virginia us-east-1, for account 987654321098:
      {
          "Effect": "Allow",
          "Action": [
              "dynamodb:DescribeTable"
          ],
          "Resource": [
              "arn:aws:dynamodb:us-east-1:987654321098:table/Customers",
              "arn:aws:dynamodb:us-east-1:987654321098:table/Orders"
          ]
      }

To give permissions to all the tables in the region you specified in the connection property AWSRegion, use an * instead of the table name:
"Resource": "arn:aws:dynamodb:us-east-1:987654321098:table/*"
dynamodb:ScanRequired for getting one or more items by accessing every item in the table. Used for most of the SELECT queries, for example, SELECT * FROM [Customers]. This action supports resource-level permissions, so you can specify the tables you want to get data from, similar to dynamodb:DescribeTable.
dynamodb:PartiQLSelectRequired for getting specific items from a table when using SELECT queries and filtering by the primary key column, for example, SELECT * FROM [Customers] WHERE id=1234. This action supports resource-level permissions, so you can specify the tables you want to get data from, similar to dynamodb:DescribeTable.
dynamodb:PartiQLInsertRequired for inserting data to a table. This action supports resource-level permissions, so you can specify the tables you want to insert data to, similar to dynamodb:DescribeTable.
dynamodb:PartiQLUpdateRequired for modifying data in a table. This action supports resource-level permissions, so you can specify the tables you want to modify data on, similar to dynamodb:DescribeTable.
dynamodb:PartiQLDeleteRequired for deleting data from a table. This action supports resource-level permissions, so you can specify the tables you want to delete data from, similar to dynamodb:DescribeTable.
dynamodb:CreateTableRequired for creating a table. This action supports resource-level permissions, so you can specify the table names you can create.

Amazon DynamoDB Connector for CData Sync

NoSQL データベース

Amazon DynamoDB はスキーマレスなドキュメントデータベースで、高いパフォーマンス、使用性、およびスケーラビリティを提供します。これらの機能は、必ずしもSQL-92 のような標準準拠のクエリ言語と互換しないわけではありません。このセクションでは、Sync App が複数のやり方によって、リレーショナルSQL とドキュメントデータベースのギャップの橋渡しをいかに行うかを説明します。

Sync App では、スキーマレスなAmazon DynamoDB テーブルをリレーショナルテーブルにモデル化し、SQL クエリをAmazon DynamoDB クエリに読み替えることで、要求されたデータを取得します。

自動スキーマ検出 スキームでは、設定された行数のテーブルをスキャンすることで、自動的にAmazon DynamoDB テーブル内のデータ型を見つけます。Amazon DynamoDB テーブルのリレーショナル表現をコントロールするためにRowScanDepth、FlattenArrays、およびFlattenObjects を使うことができます。

Amazon DynamoDB Connector for CData Sync

自動スキーマ検出

Sync App は、コレクション内のAmazon DynamoDB ドキュメントをサンプルとして調べ、リレーショナルスキーマを提案します。RowScanDepth プロパティを使って、Sync App がスキャンするドキュメント数を設定することができます。検出プロセスで特定されるカラムはFlattenArrays およびFlattenObjects プロパティに依存します。

オブジェクトのフラット化

FlattenObjects が設定されている場合、すべてのネストされたオブジェクトは連続したカラムにフラット化されます。例えば、次のドキュメントを考えましょう。

{
  id: 12,
  name: "Lohia Manufacturers Inc.",
  address: {street: "Main Street", city: "Chapel Hill", state: "NC"},
  offices: ["Chapel Hill", "London", "New York"],
  annual_revenue: 35,600,000
}
このドキュメントは次のカラムにより表されます:

カラム名データ型サンプル値
idInteger12
nameStringLohia Manufacturers Inc.
address.streetStringMain Street
address.cityStringChapel Hill
address.stateStringNC
officesString["Chapel Hill", "London", "New York"]
annual_revenueDouble35,600,000

FlattenObjects が設定されていない場合、address.street、address.city、およびaddress.state カラムは別々にはなりません。文字列型の住所カラムは一つのオブジェクトとして表されます。値は次のようになります {street:"Main Street", city:"Chapel Hill", state:"NC"}。JSON アグリゲートの詳細についてはJSON 関数 を参照してください。

カラム名の区切り文字をドットから変更するには、SeparatorCharacter を設定します。

配列のフラット化

FlattenArrays プロパティは配列の値をフラット化してそれぞれのカラムとするために使われます。これは次の例のように短い配列の場合にのみ推奨されます。

"coord": [ -73.856077, 40.848447 ]
FlattenArrays プロパティは2に設定して上の配列を次のように表すことができます:

カラム名データ型サンプル値
coord.0Float-73.856077
coord.1Float40.848447

アンバウンドの配列をそのままにしておき、必要な際にJSON 関数 を使ってデータを取り出すことをお勧めします。

Amazon DynamoDB Connector for CData Sync

垂直フラット化

オブジェクトの配列を、個別のテーブルのように取得することが可能です。例えば、restaurants テーブルから次のJSON 構造を取得します。

{
  "restaurantid" : "30075445",
  "address" : {
    "building" : "1007",
    "coord" : [-73.856077, 40.848447],
    "street" : "Morris Park Ave",
    "zipcode" : "10462"
  },
  "borough" : "Bronx",
  "cuisine" : "Bakery",
  "grades" : [{
      "date" : 1393804800000,
      "grade" : "B",
      "score" : 2
    }, {
      "date" : 1378857600000,
      "grade" : "A",
      "score" : 6
    }, {
      "date" : 1358985600000,
      "grade" : "A",
      "score" : 10
    }],
  "name" : "Morris Park Bake Shop"
}
垂直フラット化では、以下の構文を使用することでgrades 配列を別々のテーブルとして取得することを許可します。
SELECT * FROM [restaurants.grades]
このクエリは、次のデータセットを返します。

dategradescore_index
1393804800000B21
1378857600000A62
1358985600000A103

grades 配列は、さらにいくつか深いレベルでネストできます。 その場合、同じ構文を使用する必要があります。

SELECT * FROM [restaurants.cuisine.bakery.grades]
また、ネスト構造にさらに上の階層の配列が含まれている場合もあります。次のJSON を例として考えてみましょう。
{
  "restaurantid" : "30075445",
  "reviews": [
   {
    "grades": [
     {
      "date": 1393804800000,
      "score": 2,
      "grade": "B"
     },
     {
      "date": 1378857600000,
      "score": 6,
      "grade": "A"
     },
     {
      "date": 1358985600000,
      "score": 10,
      "grade": "A"
     }]
    }],
  "name" : "Morris Park Bake Shop"
}
この構造では、reviews 配列のインデックスを角かっこで囲む必要があります。SQL クエリですでにエスケープ文字列として使用されている場合は、以下のクエリのように、角かっこ自体をエスケープする必要があります。
SELECT * FROM [restaurants.reviews.\[0\].grades]
このクエリは、上部のJSON 構造と同じデータセットを返します。この構文は大文字小文字を区別しますので、フィールド名はDynamoDB に保存されているのと同じように記述するよう注意してください。

Amazon DynamoDB Connector for CData Sync

JSON 関数

Sync App では、JSON ストラクチャーをカラム値として返すことができます。Sync App を使って、これらのJSON ストラクチャーにおいて標準SQL 関数を使用できます。このセクションの例では、次の配列を使用します。

[
     { "grade": "A", "score": 2 },
     { "grade": "A", "score": 6 },
     { "grade": "A", "score": 10 },
     { "grade": "A", "score": 9 },
     { "grade": "B", "score": 14 }
]

JSON_EXTRACT

JSON_EXTRACT でJSON オブジェクトから個別の値を抜き出すことができます。次のクエリは、関数に第二引数として渡されたJSON パスに基づいて、以下に示す値を返します。
SELECT Name, JSON_EXTRACT(grades,'[0].grade') AS Grade, JSON_EXTRACT(grades,'[0].score') AS Score FROM Students;

カラム名サンプル値
GradeA
Score2

JSON_COUNT

JSON_COUNT 関数はJSON オブジェクト内のJSON 配列のエレメント数を返します。次のクエリは、関数に第二引数として渡されたJSON パスにより指定されたエレメント数を返します。
SELECT Name, JSON_COUNT(grades,'[x]') AS NumberOfGrades FROM Students;

カラム名サンプル値
NumberOfGrades5

JSON_SUM

JSON_SUM 関数は、JSON オブジェクト内のJSON 配列の数値の合計を返します。次のクエリは、関数に第二引数として渡されたJSON パスにより指定された合計値を返します。
SELECT Name, JSON_SUM(score,'[x].score') AS TotalScore FROM Students;

カラム名サンプル値
TotalScore 41

JSON_MIN

JSON_MIN 関数は、JSON オブジェクト内のJSON 配列の最小値を返します。次のクエリは、関数に第二引数として渡されたJSON パスにより指定された最小値を返します。
SELECT Name, JSON_MIN(score,'[x].score') AS LowestScore FROM Students;

カラム名サンプル値
LowestScore2

JSON_MAX

JSON_MAX 関数は、JSON オブジェクト内のJSON 配列の最大値を返します。次のクエリは、関数に第二引数として渡されたJSON パスにより指定された最大値を返します。
SELECT Name, JSON_MAX(score,'[x].score') AS HighestScore FROM Students;

カラム名サンプル値
HighestScore14

DOCUMENT

DOCUMENT 関数はすべてのドキュメントをJSON 文字列として取得する場合に用いられます。例として、次のクエリとその結果をご覧ください。

SELECT DOCUMENT(*) FROM Customers;
上のクエリはすべてのドキュメントを返します。
{ "id": 12, "name": "Lohia Manufacturers Inc.", "address": { "street": "Main Street", "city": "Chapel Hill", "state": "NC"}, "offices": [ "Chapel Hill", "London", "New York" ], "annual_revenue": 35,600,000 }

Amazon DynamoDB Connector for CData Sync

DynamoDB クエリ

Amazon DynamoDB はNoSQL データソースであり、クエリも標準的なリレーショナルデータベースとは異なるハンドリングが必要です。

Value-Sensitive クエリ

カラムにデータ型の指定がないということは、一つのカラムに異なるデータ型を格納することができるということです。例として、ある行にはEmailAddress という文字列が格納され、他の行は同じくEmailAddress というStringSet が格納されることができます。これらや他のケースでは、Sync App がクエリにおいて値によってどのデータ型を使用すべきかを判断します。

例として、PartNumber が文字列、もしくは数値のどちらでも格納できるItem テーブルがあります。Number値である12345 をPartNumber の部分を取得するには、次のクエリを使います:

SELECT Name, Location, Quantity, PartNumber FROM Items WHERE PartNumber = 12345

他の方法として、PartNumber は文字列 "12345" として格納することもできます。文字列値である12345 をPartNumber の部分を取得するには、次のクエリを使います:

SELECT Name, Location, Quantity, PartNumber FROM Items WHERE PartNumber = '12345'
特定の値のデータタイプがどちらとも取れるものでない場合には、自動検出のデータタイプの前に使われます。どちらの場合にも、パラメータはハードコードされた値の代わりに使われていて、パラメータのデータ型がAmazon DynamoDB に渡されるデータ型を決定するのに使われています。

カラムデータ型の検出

データ型検出だけでは値が明確ではない場合には、Sync App は自動検出されたカラムと比較します。Location テーブルにCoordinates というカラムを挿入したい場合には、INSERT は次のようになります:

INSERT INTO Locations (Address, Coordinates) VALUES ('123 Fake Street', '[40.7127, 74.0059]')
インプット値だけでは、検出されるデータ型は文字列です。但し、Coordinates カラムは以前に自動検出されており、Sync App は単なるstring ではなくNumberSet を挿入します。

Coordinates カラムがLocations テーブルをスキャンした際に自動検出されていなかった場合には、挿入された値のデータ型が使われます。

この場合にもINSERT がNumberSet であることを解決することができますが、いくらか難解な作業が必要です。

Count

Amazon DynamoDB supports 2 different methods of of using the COUNT aggregate function.To simply return the number of Items in you table, issue the following query:

SELECT COUNT(*) FROM MyTable
The CData Sync App will read the ItemCount from the DescribeTable Action.This avoids using too many read units to scan the full table.However, DynamoDB updates this value approximately every six hours and recent changes might not be reflected in this value.

Issuing the below example queries will instead scan the full table for count:

SELECT COUNT(*) FROM MyTable WHERE MyInt > 10
SELECT COUNT(MyInt) FROM MyTable

Amazon DynamoDB Connector for CData Sync

ドキュメントとリストのクエリ

Amazon DynamoDB ドキュメントおよびリストがCData Sync App でサポートされます。ルートレベルでドキュメントとリストに直接アクセスするか、'.' 記号を階層ディバイダーとして使ってドキュメントやリストをドリルダウンすることができます。

ドキュメントおよびリストのレポートする値

データタイプが自動検出される場合、信頼して検出できる一番低いレベルまでレポートされます。例として、Customer というドキュメントにAddress という子があり、そのAddress にStreet という子があるものは、Customer.Address.Street というカラムで表現されます。

但し、このプロセスはリストには当てはまりません。これはリストへのエントリ数は決まっていないからです。リストもしくはセットが検出された場合には、追加の値はテーブルスキーマで利用可能なものとしてはレポートされません。

レポートされていない値の見直し

もし属性で頻繁に値がなく、自動検出されないものがある場合にも、正しいパスを指定することで取得が可能です。例として、特別な属性をCustomer ドキュメントから取得する:

SELECT [Customer.Address.Street], [Customer.Special] FROM MyTable
リストが検出された場合には、追加の値はレポートされません。ただしリストの個別の値はnumber で'.' を指定することでリファレンスできます。次に例を示します。
SELECT [MyList.0], [MyList.1.Email], [MyList.1.Age] FROM MyTable
これは、リストの最初の値と、2つ目の値のEmail とAge 属性を取得します。

ドキュメントおよびリストの挿入

Amazon DynamoDB のINSERT には、フルオブジェクトを指定する必要があります。ドキュメントもしくはリストのルートでの挿入(INSERT)フルJSON アグリゲートのパス次に例を示します。

INSERT INTO MyTable (PrimaryKey, EmailAddresses, Address, MyList) VALUES ('uniquekey', '["[email protected]", "[email protected]"]', '{"Street":"123 Fake Street", "City":"Chapel Hill", "Zip":"27713"}', '[{"S":"somestr"},{"NS":[1,2]},{"N":4}]')
このケースでは、EmailAddress はStringSet として挿入され、Address はドキュメントとして挿入され、MyList はリストとして挿入されます。

ドキュメントおよびリストの更新

更新(UPDATE) はSELECT で利用可能なものと同じシンタックスを使ってサポートされます。ドキュメントおよびリストは階層を指定する'.' 記号を使って指定できます。次に例を示します。

UPDATE MyTable SET [EmailAddress.0]='[email protected]', [EmailAddress.1]='[email protected]', [Address.Street]='123 Fake Street', [Address.City]='Chapel Hill', [Address.Zip]='27713', [MyList.0]='somestr', [MyList.1]='[1,2]', [MyList.2]=4 WHERE PrimaryKey='uniquekey'
注意すべき点として、EmailAddress およびMyList は、EmailAddress をMyList とは別に扱う問題を解決するために、自動検出されなければなりません。もし自動検出がされるかに確信がない場合には、更新にフルJSON を指定すればいつでも機能します。

Amazon DynamoDB Connector for CData Sync

データ型マッピング

データ型のマッピング

Sync App は、データソースの型を、スキーマで使用可能な対応するデータ型にマッピングします。さらに、IgnoreTypes 接続プロパティに基づいて返される利用可能なデータのスキャンを試みます。 以下のテーブルはこれらのマッピングを説明します。

Amazon DynamoDB CData スキーマ
String string、date、datetime、time
Binary string
Number bigint、int、float(検出されるデータに応じて)
StringSet string
NumberSet string
BinarySet string
Map string
List string
Boolean bool
Null string

Note that depending on the settings of IgnoreTypes, some of these types may not be detected by default.Date, datetime, and time for example are ignored by default as they cannot be filtered server side, and may be inserted / updated in a different format than your existing entries if enabled.Please use caution when enabling them.

FlattenArrays and FlattenObjects may also be used to to flatten the StringSets, NumberSets, BinarySets, Maps, and Lists into indivudal columns.

Amazon DynamoDB Connector for CData Sync

カスタムスキーマ定義

自動スキーマ検出 に加え、Sync App ではAmazon DynamoDB テーブルのスキーマを統計的に定義することができます。レストランのデータセットのスキーマを考えてみましょう。

テーブルからの例としてのアイテムは以下のとおり:

{
   "address":{
      "building":"461",
      "coord":[
         -74.138492,
         40.631136
      ],
      "street":"Port Richmond Ave",
      "zipcode":"10302"
   },
   "borough":"Staten Island",
   "cuisine":"Other",
   "grades":[

   ],
   "name":"Indian Oven",
   "restaurant_id":"50018994"
}

カスタムスキーマの定義

ネストプロパティを取得するカスタムスキーマを定義することができます。Location プロパティをスキーマファイルを格納するファイルディレクトリに設定します。

次のスキーマは、other:path プロパティを使って、特定のカラムへのデータがどこに取得されるべきかを定義します。このモデルを使って、階層構造のアービトラリーレベルをフラット化することができます。

'other:tableapiname' 属性は、パースするテーブルを指定します。この属性は同じテーブルに対して複数のスキーマを使うフレキシビリティを与えます。

カスタムスキーマ例 では、上の例を含む完全なスキーマを確認できます。

<api:info title="StaticRestaurants" other:catalog="CData" other:schema="AmazonDynamoDB" description="StaticRestaurants" other:tableapiname="StaticRestaurants"  other:version="20">
  <attr   name="id"      xs:type="decimal"   key="true"   columnsize="17"     precision="38"   scale="6"   readonly="false"   description="Dynamic Column."   other:dynamodatatype="N"   other:relativepath="restaurant_id"   other:filterable="true"   other:fullpath="restaurant_id"      other:apiname="&amp;quot;restaurant_id&amp;quot;"                          />
  <attr   name="borough"            xs:type="string"                 columnsize="2000"                                readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="borough"         other:filterable="true"   other:fullpath="borough"            other:apiname="&amp;quot;borough&amp;quot;"                                />
  <attr   name="address_zipcode"    xs:type="int"                    columnsize="4"      precision="10"               readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="zipcode"         other:filterable="true"   other:fullpath="address.zipcode"    other:apiname="&amp;quot;address&amp;quot;.&amp;quot;zipcode&amp;quot;"    />
  <attr   name="address_coord_0"    xs:type="double"                 columnsize="8"      precision="15"               readonly="false"   description="Dynamic Column."   other:dynamodatatype="N"   other:relativepath="coord"           other:filterable="true"   other:fullpath="address.coord[0]"   other:apiname="&amp;quot;address&amp;quot;.&amp;quot;coord&amp;quot;[0]"   />
  <attr   name="address_coord_1"    xs:type="double"                 columnsize="8"      precision="15"               readonly="false"   description="Dynamic Column."   other:dynamodatatype="N"   other:relativepath="coord[1]"        other:filterable="true"   other:fullpath="address.coord[1]"   other:apiname="&amp;quot;address&amp;quot;.&amp;quot;coord&amp;quot;[1]"   />
  <attr   name="address_building"   xs:type="int"                    columnsize="4"      precision="10"               readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="building"        other:filterable="true"   other:fullpath="address.building"   other:apiname="&amp;quot;address&amp;quot;.&amp;quot;building&amp;quot;"   />
  <attr   name="address_street"     xs:type="string"                 columnsize="2000"                                readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="street"          other:filterable="true"   other:fullpath="address.street"     other:apiname="&amp;quot;address&amp;quot;.&amp;quot;street&amp;quot;"     />
  <attr   name="name"               xs:type="string"                 columnsize="2000"                                readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="name"            other:filterable="true"   other:fullpath="name"               other:apiname="&amp;quot;name&amp;quot;"                                   />
  <attr   name="cuisine"            xs:type="string"                 columnsize="2000"                                readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="cuisine"         other:filterable="true"   other:fullpath="cuisine"            other:apiname="&amp;quot;cuisine&amp;quot;"                                />
</api:info>

Amazon DynamoDB Connector for CData Sync

カスタムスキーマ例

このセクションには、完全なスキーマが含まれています。インフォセクションではAmazon DynamoDB テーブルのリレーショナルビューを可能にします。詳細はカスタムスキーマ定義 を参照してください。次のテーブルではSELECT、INSERT、UPDATE、およびDELETE コマンドが以下のスキーマのGET、POST、MERGE、およびDELETE セクションとして実行されます。Location プロパティをスキーマファイルを格納するファイルディレクトリに設定します。

'other:tableapiname' 属性を使って、パースするテーブル名を特定します。'other:tableapiname' 属性を使って、同じコレクションに対して複数のスキーマを定義することができます。 Note: Amazon DynamoDB は大文字・小文字の区別が必要です。テーブル名および指定されたパスは、Amazon DynamoDB においてフィールドが現れる際の大文字・小文字に合致している必要があります。

dynamodbadoProviderOperationCaller のような処理は内部の実行であり、as-is でコピーできます。

<api:script xmlns:api="http://apiscript.com/ns?v1" xmlns:xs="http://www.cdata.com/ns/rsbscript/2" xmlns:other="http://apiscript.com/ns?v1">
  <api:info title="StaticRestaurants" other:catalog="CData" other:schema="AmazonDynamoDB" description="StaticRestaurants" other:tableapiname="StaticRestaurants"  other:version="20">
    <attr   name="id"      xs:type="decimal"   key="true"   columnsize="17"     precision="38"   scale="6"   readonly="false"   description="Dynamic Column."   other:dynamodatatype="N"   other:relativepath="restaurant_id"   other:filterable="true"   other:fullpath="restaurant_id"      other:apiname="&amp;quot;restaurant_id&amp;quot;"                          />
    <attr   name="borough"            xs:type="string"                 columnsize="2000"                                readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="borough"         other:filterable="true"   other:fullpath="borough"            other:apiname="&amp;quot;borough&amp;quot;"                                />
    <attr   name="address_zipcode"    xs:type="int"                    columnsize="4"      precision="10"               readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="zipcode"         other:filterable="true"   other:fullpath="address.zipcode"    other:apiname="&amp;quot;address&amp;quot;.&amp;quot;zipcode&amp;quot;"    />
    <attr   name="address_coord_0"    xs:type="double"                 columnsize="8"      precision="15"               readonly="false"   description="Dynamic Column."   other:dynamodatatype="N"   other:relativepath="coord"           other:filterable="true"   other:fullpath="address.coord[0]"   other:apiname="&amp;quot;address&amp;quot;.&amp;quot;coord&amp;quot;[0]"   />
    <attr   name="address_coord_1"    xs:type="double"                 columnsize="8"      precision="15"               readonly="false"   description="Dynamic Column."   other:dynamodatatype="N"   other:relativepath="coord[1]"        other:filterable="true"   other:fullpath="address.coord[1]"   other:apiname="&amp;quot;address&amp;quot;.&amp;quot;coord&amp;quot;[1]"   />
    <attr   name="address_building"   xs:type="int"                    columnsize="4"      precision="10"               readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="building"        other:filterable="true"   other:fullpath="address.building"   other:apiname="&amp;quot;address&amp;quot;.&amp;quot;building&amp;quot;"   />
    <attr   name="address_street"     xs:type="string"                 columnsize="2000"                                readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="street"          other:filterable="true"   other:fullpath="address.street"     other:apiname="&amp;quot;address&amp;quot;.&amp;quot;street&amp;quot;"     />
    <attr   name="name"               xs:type="string"                 columnsize="2000"                                readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="name"            other:filterable="true"   other:fullpath="name"               other:apiname="&amp;quot;name&amp;quot;"                                   />
    <attr   name="cuisine"            xs:type="string"                 columnsize="2000"                                readonly="false"   description="Dynamic Column."   other:dynamodatatype="S"   other:relativepath="cuisine"         other:filterable="true"   other:fullpath="cuisine"            other:apiname="&amp;quot;cuisine&amp;quot;"                                />
  </api:info>


  <api:script method="GET">
    <api:call op="dynamodbadoProviderOperationCaller">
      <api:push/>
    </api:call>
  </api:script>

  <api:script method="POST">
    <api:call op="dynamodbadoProviderOperationCaller">
      <api:push/>
    </api:call>
  </api:script>

  <api:script method="MERGE">
    <api:call op="dynamodbadoProviderOperationCaller">
      <api:push/>
    </api:call>
  </api:script>

  <api:script method="DELETE">
    <api:call op="dynamodbadoProviderOperationCaller">
      <api:push/>
    </api:call>
  </api:script>
</api:script>

Amazon DynamoDB Connector for CData Sync

高度な機能

このセクションでは、Amazon DynamoDB Sync App の高度な機能を厳選して説明します。

Automatic Index Detection

The AutoDetectIndex property provides fast access to items in a table by detecting an alternate index which can be queried in place of the table itself. This secondary index is a data structure that contains a subset of attributes from a table and an alternate key. The benefit of querying an index instead of the main table is skipping a full scan of the main table. This makes the operation much faster.

ユーザー定義ビュー

Sync App を使用すると、事前設定されたクエリによって内容が決定されるユーザー定義ビューと呼ばれる仮想テーブルを定義できます。 このビューは、ドライバーに発行されるクエリを直接制御できない場合に有効です。 カスタムビューの作成と設定の概要については、ユーザー定義ビュー を参照してください。

SSL の設定

SSL の設定 を使用して、Sync App が証明書のネゴシエーションをどのように扱うかを調整します。さまざまな証明書形式を選択できます。 詳しくは、接続文字列オプションにあるSSLServerCert プロパティを参照してください。

ファイアウォールとプロキシ

Windows プロキシとHTTP プロキシを含むファイアウォールとプロキシ に合致するようSync App を設定します。トンネル接続を設定することもできます。

クエリ処理

Sync App は、Amazon DynamoDB にできるだけ多くのSELECT ステートメント処理をオフロードし、残りのクエリをクライアント側のインメモリで処理します。

詳しくはクエリ処理 を参照してください。

ログ

CData ログを調整するために使用可能な設定の概要については、ログ を参照してください。基本的なロギングでは、 次の2つの接続プロパティを設定するだけです。LogModules 接続プロパティを使用してログに記録する情報のサブセットを選択できる、 より洗練されたロギングをサポートする多数の機能があります。

Amazon DynamoDB Connector for CData Sync

SSL の設定

SSL 設定のカスタマイズ

デフォルトでは、Sync App はサーバーの証明書をシステムの信頼できる証明書ストアと照合してSSL / TLS のネゴシエーションを試みます。

別の証明書を指定するには、利用可能なフォーマットについてSSLServerCert プロパティを参照してください。

Amazon DynamoDB Connector for CData Sync

ファイアウォールとプロキシ

Firewall またはProxy 経由の接続

HTTP プロキシ

Windows のシステムプロキシ経由の接続では、接続プロパティを追加で設定する必要はありません。他のプロキシに接続するには、ProxyAutoDetect をfalse に設定します。

さらにHTTP プロキシへの認証には、ProxyServer とProxyPort に加えてProxyAuthScheme、ProxyUser、およびProxyPassword を設定します。

その他のプロキシ

次のプロパティを設定します。

  • プロキシベースのファイヤーウォールを使用するには、FirewallType、FirewallServer、およびFirewallPort を設定します。
  • 接続をトンネルするには、FirewallType をTUNNEL に設定します。
  • 認証するには、FirewallUser とFirewallPassword を設定します。
  • SOCKS プロキシへの認証には、さらにFirewallType をSOCKS5 に設定します。

Amazon DynamoDB Connector for CData Sync

データモデル

Sync App を使って、Amazon DynamoDB に接続し、標準データベースと同様のインターフェースでデータを使用することができます。Amazon DynamoDB は高度に拡張性のあるNoSQL クラウドデータベースであり、通常のデータベースとは大きく異なります。このセッションでは、スキーマレスなAmazon DynamoDB をどのようにして標準のテーブル およびストアドプロシージャ にモデル化しているかを説明します。

Sync App は接続時にスキーマを動的に検出できます。接続時に暗黙的にスキーマを定義する方法については、自動スキーマ検出 を参照してください。このメソッドはデータ構造が揮発性の場合に便利です。

Amazon DynamoDB Connector for CData Sync

テーブル

テーブルのリストはAmazon DynamoDB アカウントから動的に取得されます。 ストアドプロシージャを使って、新しいテーブルを作成できます。Amazon Web サービスAdmin コンソールを使ってテーブルを作成することもできます。

DynamoDB テーブルはキーに基づいて仕切られているため、テーブルのクエリ要件に基づいて正しいキーを選択するように気を付けなければなりません。DynamoDB テーブルにデータをモデル化するベストプラクティスの使用については、DynamoDB のドキュメントを参照してください。DynamoDB は二種類のプライマリキーをサポートします。

  • Hash キー:これは単一列のキーです。
  • Hash + Range キー:これは2列のキーで、ハッシュ列と範囲列を含みます。
Sync App はDynamoDB のすべてのキー属性をキーカラムとしてモデル化します。

Amazon DynamoDB Connector for CData Sync

テーブル列

Amazon DynamoDB テーブルはスキーマレスであり、Sync App では以下の二つの方法でスキーマをアンカバーします。

動的スキーマ

テーブルのカラムは最初の数行をスキャンすることで動的に決定されます。RowScanDepth プロパティを変更することで、スキャンする行数を調節することができます。カラム名のほかに、行スキャンがデータ型を決定します。次のテーブルは、どのようにAmazon DynamoDB でサポートされている異なるデータ型がSync App においてモデル化されているかを説明します。

Amazon DynamoDB 型モデル化された型エンコーディングサンプル値
BooleanBooleanNot RequiredTrue
StringStringNot RequiredUSA
BlobStringNot Required
NumberDoubleNot Required24.0
String ArrayStringJSON Array["USA","Canada","UK"]
Number ArrayStringJSON Array[20,200.5,500]
Blob ArrayJSON ArrayJSON Array["ABCD","EFGH"]
DocumentJSON ObjectJSON Object{"Address":"123 Fake Street","City":"Chapel Hill","Zip":"27516"}
ListJSON ArrayJSON Array[{"S":"mystring"},{"NS":[1,2]},{"N":4}]

静的スキーマ

動的に組成されるスキーマを使う代わりに、自分でスキーマを定義することも可能です。これにより、射影されるカラムを管理できるほか、boolean、datetime など、別のデータ型を使用することができます。独自のスキーマを作成するには、CreateSchema ストアドプロシージャを参照してください。新しいスキーマファイルのFileName(フルパス)およびTableName を、Amazon DynamoDB テーブルの名前に合致するように指定し、カラムリストを編集し、お客様自身のテーブルとして利用します。

スキーマレス処理

テーブルスキーマはメタデータを報告する際に必要ですが、データの選択、挿入、更新、削除ではスキーマに存在しないカラムからのデータが扱われることがあります。まだスキーマテーブルが存在していないカラムのデータ型は、指定されたデータに基づいて動的に決定されます。詳しくは、DynamoDB クエリ を参照してください。

Amazon DynamoDB Connector for CData Sync

接続文字列オプション

接続文字列プロパティは、接続を確立するために使用できるさまざまなオプションです。このセクションでは、本プロバイダーの接続文字列で設定できるオプションの一覧を示します。詳細については各リンクをクリックしてください。

接続を確立する方法について詳しくは、接続の確立を参照してください。

Connection


プロパティ説明
UseLakeFormationこのプロパティがtrue に設定される場合、AWSLakeFormation サービスは、設定されたIAM ロールに基づくユーザーに対してアクセスポリシーを適用する一時的な資格情報を取得するために使用されます。このサービスは、SAML アサーションを提供した上で、OKTA、ADFS、AzureAD、PingFederate 経由で認証する場合に使用できます。

AWS Authentication


プロパティ説明
AuthScheme認証で使用されるスキーム。許容されるエンティティは:Auto、、AwsRootKeys 、AwsIAMRoles 、AwsEC2Roles 、AwsMFA 、ADFS、Okta、PingFederate 、AwsCredentialsFile 、AwsCognitoBasic 、AwsCognitoSrpです。
DomainAWS のドメイン名。オプションでドメイン名をAWS と関連付けることができます。
AWSAccessKeyAWS アカウントのアクセスキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。
AWSSecretKeyAWS アカウントのシークレットキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。
AWSRoleARN認証時に使用するロールのAmazon リソースネーム。
AWSRegionAmazon Web サービスのホスティングリージョン。
AWSCredentialsFile認証に使用するAWS クレデンシャルファイルへのパス。
AWSCredentialsFileProfile提供されたAWSCredentialsFile から使用されるプロファイルの名前。
AWSSessionTokenAWS のセッショントークン。
AWSExternalId他のアカウントでロールを引き受ける際に必要となる一意の識別子。
MFASerialNumberMFA デバイスが使用されている場合は、そのシリアル番号。
MFATokenMFA デバイスから利用できる一時トークン。
TemporaryTokenDuration一時トークンが持続する時間(秒単位)。
AWSCognitoRegionAWS Cognito のホスティングリージョン。
AWSUserPoolIdユーザープールのID。
AWSUserPoolClientAppIdユーザープールのアプリクライアントID。
AWSUserPoolClientAppSecretユーザープールのアプリクライアントシークレット。(オプション)
AWSIdentityPoolIdID プールのID。

SSO


プロパティ説明
UserSSO 経由でIDP の認証に使用するIDP ユーザー。
PasswordSSO 経由でIDP ユーザーの認証に使用するパスワード。
SSOLoginURLID プロバイダーのログインURL。
SSOPropertiesセミコロンで区切られたID プロバイダーへの接続に必要な追加プロパティ。
SSOExchangeUrlSAML 応答を処理してサービスの資格情報と交換するために使用するURL。

SSL


プロパティ説明
SSLServerCertTLS/SSL を使用して接続するときに、サーバーが受け入れ可能な証明書。

Firewall


プロパティ説明
FirewallTypeプロキシベースのファイアウォールで使われるプロトコル。
FirewallServerプロキシベースのファイアウォールの名前もしくはIP アドレス。
FirewallPortプロキシベースのファイアウォールのTCP ポート。
FirewallUserプロキシベースのファイアウォールに認証するために使うユーザー名。
FirewallPasswordプロキシベースのファイアウォールへの認証に使われるパスワード。

Proxy


プロパティ説明
ProxyAutoDetectこれは、システムプロキシ設定を使用するかどうかを示します。
ProxyServerHTTP トラフィックをルートするためのプロキシのホストネームもしくはIP アドレス。
ProxyPortProxyServer プロキシが起動しているTCP ポート。
ProxyAuthSchemeProxyServer プロキシへの認証で使われる認証タイプ。
ProxyUserProxyServer プロキシへの認証に使われるユーザー名。
ProxyPasswordProxyServer プロキシへの認証に使われるパスワード。
ProxySSLTypeProxyServer プロキシへの接続時に使用するSSL タイプ。
ProxyExceptionsProxyServer 経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリスト。

Logging


プロパティ説明
LogModulesログファイルに含めるコアモジュール。

Schema


プロパティ説明
Locationテーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリへのパス。
BrowsableSchemasこのプロパティは、使用可能なスキーマのサブセットにレポートされるスキーマを制限します。例えば、BrowsableSchemas=SchemaA,SchemaB,SchemaC です。
Tablesこのプロパティは、使用可能なテーブルのサブセットにレポートされるテーブルを制限します。例えば、Tables=TableA,TableB,TableC です。
Views使用可能なテーブルのサブセットにレポートされるビューを制限します。例えば、Views=ViewA,ViewB,ViewC です。

Miscellaneous


プロパティ説明
AutoDetectIndexA boolean indicating if secondary indexes should be automatically detected based on the query used.
FlattenArraysデフォルトで、ネスト配列はJSON 文字列として返されます。 FlattenArrays プロパティはネスト配列のエレメントをフラット化してそれぞれのカラムとするために使われます。ネスト配列から返すエレメントの数に FlattenArrays を設定します。
FlattenObjectsフラット化されたオブジェクトプロパティとしてカラムを表示するには、 FlattenObjects をtrue に設定します。そうでなければ、配列にネストされたオブジェクトはJSON 文字列として返されます。
FlexibleSchemaクエリ結果セットの追加のメタデータをスキャンするには、 FlexibleSchema をtrue に設定します。それ以外の場合、メタデータはそのままです。
GenerateSchemaFilesスキーマを生成して保存するユーザーの好みのタイミングを示します。
IgnoreTypes指定された型のサポートを削除します。例えば、Time です。これらの型は、代わりに文字列として報告されます。
MaximumRequestRetriesリクエストをリトライする最大回数。
MaxRowsクエリで集計またはGROUP BY を使用しない場合に返される行数を制限します。これはLIMIT 句よりも優先されます。
Otherこれらの隠しプロパティは特定のユースケースでのみ使用されます。
PagesizeConfigures the maximum number of items that Amazon DynamoDB evaluates per API request.
PseudoColumnsこのプロパティは、テーブルのカラムとして疑似カラムが含まれているかどうかを示します。
QueryModeThis property indicates how the driver will retrieve the results.
RetryWaitTimeリクエストを再試行するためにprovider が待機する最小時間(ミリ秒数)。
RowScanDepthテーブルで利用可能なカラムを探すためにスキャンする行数の最大値。
SeparatorCharacter階層を示すために使用する記号。
ThreadCount並列スキャンでデータを選択するときに使用するスレッドの数。ThreadCount を1 に設定すると、並列スキャンは無効になります。
Timeoutタイムアウトエラーがスローされ、処理をキャンセルするまでの秒数。
TypeDetectionSchemeカラムのデータ型を決定するための方法を指定します。
UseBatchWriteItemOperationWhen enabled the provider will use BatchWriteItem operation for handling updates and INSERTs. By default, the provider uses ExecuteStatement/BatchExecuteStatement operation. You need to enable BatchWriteItem only when inserting/updating binary/binary-set data. ExecuteStatement/BatchExecuteStatement doesn't support manipulating binary fields.
UseConsistentReadsWhether to alyways use Consistent Reads or not when querying DynamoDb
UserDefinedViewsカスタムビューを含むJSON コンフィギュレーションファイルを指すファイルパス。
UseSimpleNamesテーブルとカラムに簡略名を使用するかどうかを決定するboolean。
Amazon DynamoDB Connector for CData Sync

Connection

このセクションでは、本プロバイダーの接続文字列で設定可能なConnection プロパティの全リストを提供します。


プロパティ説明
UseLakeFormationこのプロパティがtrue に設定される場合、AWSLakeFormation サービスは、設定されたIAM ロールに基づくユーザーに対してアクセスポリシーを適用する一時的な資格情報を取得するために使用されます。このサービスは、SAML アサーションを提供した上で、OKTA、ADFS、AzureAD、PingFederate 経由で認証する場合に使用できます。
Amazon DynamoDB Connector for CData Sync

UseLakeFormation

このプロパティがtrue に設定される場合、AWSLakeFormation サービスは、設定されたIAM ロールに基づくユーザーに対してアクセスポリシーを適用する一時的な資格情報を取得するために使用されます。このサービスは、SAML アサーションを提供した上で、OKTA、ADFS、AzureAD、PingFederate 経由で認証する場合に使用できます。

解説

このプロパティがtrue に設定される場合、AWSLakeFormation サービスは、設定されたIAM ロールに基づくユーザーに対してアクセスポリシーを適用する一時的な資格情報を取得するために使用されます。このサービスは、SAML アサーションを提供した上で、OKTA、ADFS、AzureAD、PingFederate 経由で認証する場合に使用できます。

Amazon DynamoDB Connector for CData Sync

AWS Authentication

このセクションでは、本プロバイダーの接続文字列で設定可能なAWS Authentication プロパティの全リストを提供します。


プロパティ説明
AuthScheme認証で使用されるスキーム。許容されるエンティティは:Auto、、AwsRootKeys 、AwsIAMRoles 、AwsEC2Roles 、AwsMFA 、ADFS、Okta、PingFederate 、AwsCredentialsFile 、AwsCognitoBasic 、AwsCognitoSrpです。
DomainAWS のドメイン名。オプションでドメイン名をAWS と関連付けることができます。
AWSAccessKeyAWS アカウントのアクセスキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。
AWSSecretKeyAWS アカウントのシークレットキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。
AWSRoleARN認証時に使用するロールのAmazon リソースネーム。
AWSRegionAmazon Web サービスのホスティングリージョン。
AWSCredentialsFile認証に使用するAWS クレデンシャルファイルへのパス。
AWSCredentialsFileProfile提供されたAWSCredentialsFile から使用されるプロファイルの名前。
AWSSessionTokenAWS のセッショントークン。
AWSExternalId他のアカウントでロールを引き受ける際に必要となる一意の識別子。
MFASerialNumberMFA デバイスが使用されている場合は、そのシリアル番号。
MFATokenMFA デバイスから利用できる一時トークン。
TemporaryTokenDuration一時トークンが持続する時間(秒単位)。
AWSCognitoRegionAWS Cognito のホスティングリージョン。
AWSUserPoolIdユーザープールのID。
AWSUserPoolClientAppIdユーザープールのアプリクライアントID。
AWSUserPoolClientAppSecretユーザープールのアプリクライアントシークレット。(オプション)
AWSIdentityPoolIdID プールのID。
Amazon DynamoDB Connector for CData Sync

AuthScheme

認証で使用されるスキーム。許容されるエンティティは:Auto、、AwsRootKeys 、AwsIAMRoles 、AwsEC2Roles 、AwsMFA 、ADFS、Okta、PingFederate 、AwsCredentialsFile 、AwsCognitoBasic 、AwsCognitoSrpです。

解説

次のオプションを使って、認証スキームを選択してください。

  • Auto:これを設定すると、Sync App は、指定された他の接続プロパティに基づいて、使用する適切な認証スキームを自動的に解決しようとします。
  • TemporaryCredentials:これを設定すると、一時的なセキュリティ認証情報を、接続するセッショントークンと一緒に利用して接続できます。
  • AwsRootKeys:ルートユーザーのアクセスキーおよびシークレットが使用されます。クイックテストには便利ですが、本番環境のユースケースでは、権限を絞ったものを使用することをお勧めします。
  • AwsIAMRoles:接続にIAM ロールが使用されます。
  • AwsEC2Roles:これを設定すると、CData Sync App が現在実行中のEC2マシンに割り当てられたIAM ロールが自動的に使用されます。
  • AwsMFA:マルチファクタ認証を使用するために設定します。
  • Okta:OKTA をID プロバイダーとしてシングルサインオン接続を使用するように設定します。
  • ADFS:ADFS をID プロバイダーとしてシングルサインオン接続を使用するように設定します。
  • PingFederate:PingFederate をID プロバイダーとしてシングルサインオン接続を使用するように設定します。
  • AwsCredentialsFile:認証に認証情報ファイルを使用するために設定します。

Amazon DynamoDB Connector for CData Sync

Domain

AWS のドメイン名。オプションでドメイン名をAWS と関連付けることができます。

解説

固有のAWS ドメイン名を持っていない場合は、この値をamazonaws.com のままにしてください。

Amazon DynamoDB Connector for CData Sync

AWSAccessKey

AWS アカウントのアクセスキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。

解説

AWS アカウントのアクセスキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。

  1. ルートアカウントの認証情報を使用してAWS 管理コンソールにサインインします。
  2. アカウント名または番号を選択し、表示されたメニューで[My Security Credentials]を選択します。
  3. [Continue to Security Credentials]をクリックし、[Access Keys]セクションを展開して、ルートアカウントのアクセスキーを管理または作成します。

Amazon DynamoDB Connector for CData Sync

AWSSecretKey

AWS アカウントのシークレットキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。

解説

AWS アカウントのシークレットキー。この値には、[AWS セキュリティ認証情報]ページからアクセスできます。

  1. ルートアカウントの認証情報を使用してAWS 管理コンソールにサインインします。
  2. アカウント名または番号を選択し、表示されたメニューで[My Security Credentials]を選択します。
  3. [Continue to Security Credentials]をクリックし、[Access Keys]セクションを展開して、ルートアカウントのアクセスキーを管理または作成します。

Amazon DynamoDB Connector for CData Sync

AWSRoleARN

認証時に使用するロールのAmazon リソースネーム。

解説

AWS の外部で認証する場合は、AWS アカウント認証情報ではなく、ロールを認証に使用するのが 一般的です。AWSRoleARN を入力すると、CData Sync App はAWSAccessKey とAWSSecretKey を直接 使用する代わりに、ロールベースの認証を実行します。この認証を実行するためには、AWSAccessKey と AWSSecretKey を指定する必要があります。RoleARN を設定するときは、AWS ルートユーザーの 認証情報を使用できません。AWSAccessKey およびAWSSecretKey はIAM ユーザーのものである必要があります。

Amazon DynamoDB Connector for CData Sync

AWSRegion

Amazon Web サービスのホスティングリージョン。

解説

Amazon Web サービスのホスティングリージョン。利用可能な値はOHIO、NORTHERNVIRGINIA、NORTHERNCALIFORNIA、OREGON、CAPETOWN、HONGKONG、JAKARTA、MUMBAI、OSAKA、SEOUL、SINGAPORE、SYDNEY、TOKYO、CENTRAL、BEIJING、NINGXIA、FRANKFURT、IRELAND、LONDON、MILAN、PARIS、STOCKHOLM、ZURICH、BAHRAIN、UAE、SAOPAULO、GOVCLOUDEAST、GOVCLOUDWEST です。

Amazon DynamoDB Connector for CData Sync

AWSCredentialsFile

認証に使用するAWS クレデンシャルファイルへのパス。

解説

認証に使用するAWS クレデンシャルファイルへのパス。詳しくは、https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html を参照してください。

Amazon DynamoDB Connector for CData Sync

AWSCredentialsFileProfile

提供されたAWSCredentialsFile から使用されるプロファイルの名前。

解説

提供されたAWSCredentialsFile から使用されるプロファイルの名前。詳しくは、https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html を参照してください。

Amazon DynamoDB Connector for CData Sync

AWSSessionToken

AWS のセッショントークン。

解説

AWS のセッショントークン。この値はさまざまな方法で取得できます。詳しくは、this link を参照してください。

Amazon DynamoDB Connector for CData Sync

AWSExternalId

他のアカウントでロールを引き受ける際に必要となる一意の識別子。

解説

他のアカウントでロールを引き受ける際に必要となる一意の識別子。

Amazon DynamoDB Connector for CData Sync

MFASerialNumber

MFA デバイスが使用されている場合は、そのシリアル番号。

解説

AWS マネジメントコンソールにアクセスしてユーザーのセキュリティ認証情報を表示することで、IAM ユーザーのデバイスを見つけることができます。 仮想デバイスの場合、これは実際にはAmazon リソースネームです( arn:aws:iam::123456789012:mfa/user など)。

Amazon DynamoDB Connector for CData Sync

MFAToken

MFA デバイスから利用できる一時トークン。

解説

MFA が必要な場合、この値はログインのためのテンポラリクレデンシャルを取得するためにMFASerialNumber とともに使用されます。 AWS から入手可能な一時的な認証情報はデフォルトで最長1時間しか持続しません(TemporaryTokenDuration を参照してください)。時間が経過したら、新しい認証情報を取得できるように、接続を 更新して新しいMFA トークンを指定する必要があります。

Amazon DynamoDB Connector for CData Sync

TemporaryTokenDuration

一時トークンが持続する時間(秒単位)。

解説

一時トークンは、MFA 認証とロールベース認証の両方で使用されます。一時トークンは、やがてタイムアウトします。 そのときには、新しい一時トークンを取得する必要があります。MFA が使用されていない状況では、これは大したこと ではありません。一時トークンが期限切れになると、CData Sync App は内部的に新しい一時トークンをリクエストします。

ただし、MFA が必要な接続の場合は、新しい一時トークンを取得するために新しいMFAToken を接続で指定 する必要があります。これは、ユーザーによる接続の更新が必要になるため、より煩わしい問題です。指定できる 最大値と最小値は、使用されている接続によって大きく異なります。

ロールベース認証の場合は、最小期間は900秒(15分)で、最大期間は3600秒(1時間)です。 ロールベース認証でMFA が使用されている場合でも、3600秒が依然として最大です。

MFA 認証自体では(IAM ユーザーまたはルートユーザーを使用)、最小値は900秒(15分)、 最大値は129600(36時間)です。

Amazon DynamoDB Connector for CData Sync

AWSCognitoRegion

AWS Cognito のホスティングリージョン。

解説

AWS Cognito のホスティングリージョン。利用可能な値は次のとおりです。OHIO, NORTHERNVIRGINIA, NORTHERNCALIFORNIA, OREGON, CAPETOWN, HONGKONG, MUMBAI, OSAKA, SEOUL, SINGAPORE, SYDNEY, TOKYO, CENTRAL, BEIJING, NINGXIA, FRANKFURT, IRELAND, LONDON, MILAN, PARIS, STOCKHOLM, BAHRAIN, SAOPAULO, GOVCLOUDEAST, GOVCLOUDWEST

Amazon DynamoDB Connector for CData Sync

AWSUserPoolId

ユーザープールのID。

解説

[AWS Cognito]->[Manage User Pools(ユーザープールの管理)]->[select your user pool(ユーザープールを選択)]->[General settings(全般設定)]->[Pool ID(プールのID)]で確認できます。

Amazon DynamoDB Connector for CData Sync

AWSUserPoolClientAppId

ユーザープールのアプリクライアントID。

解説

[AWS Cognito]->[Manage Identity Pools(ID プールの管理)]->[select your user pool(ユーザープールを選択)]->[General settings(全般設定)]->[App clients(アプリクライアント)]->[App client ID(アプリクライアントID)]で確認できます。

Amazon DynamoDB Connector for CData Sync

AWSUserPoolClientAppSecret

ユーザープールのアプリクライアントシークレット。(オプション)

解説

[AWS Cognito]->[Manage Identity Pools(ID プールの管理)]->[select your user pool(ユーザープールを選択)]->[General settings(全般設定)]->[App clients(アプリクライアント)]->[App client secret(アプリクライアントシークレット)]で確認できます。

Amazon DynamoDB Connector for CData Sync

AWSIdentityPoolId

ID プールのID。

解説

[AWS Cognito]->[Manage Identity Pools(ID プールの管理)]->[select your identity pool(ID プールを選択)]->[Edit identity pool(ID プールの編集)]->[Identity Pool(ID プール)]で確認できます。

Amazon DynamoDB Connector for CData Sync

SSO

このセクションでは、本プロバイダーの接続文字列で設定可能なSSO プロパティの全リストを提供します。


プロパティ説明
UserSSO 経由でIDP の認証に使用するIDP ユーザー。
PasswordSSO 経由でIDP ユーザーの認証に使用するパスワード。
SSOLoginURLID プロバイダーのログインURL。
SSOPropertiesセミコロンで区切られたID プロバイダーへの接続に必要な追加プロパティ。
SSOExchangeUrlSAML 応答を処理してサービスの資格情報と交換するために使用するURL。
Amazon DynamoDB Connector for CData Sync

User

SSO 経由でIDP の認証に使用するIDP ユーザー。

解説

このフィールドは、Password とともに、SSO 接続でAmazon DynamoDB サーバーに対して認証をするために使われます。

Amazon DynamoDB Connector for CData Sync

Password

SSO 経由でIDP ユーザーの認証に使用するパスワード。

解説

User およびPassword をSSO 接続で一緒に使用してサーバーで認証を行います。

Amazon DynamoDB Connector for CData Sync

SSOLoginURL

ID プロバイダーのログインURL。

解説

ID プロバイダーのログインURL。

Amazon DynamoDB Connector for CData Sync

SSOProperties

セミコロンで区切られたID プロバイダーへの接続に必要な追加プロパティ。

解説

セミコロンで区切られたID プロバイダーへの接続に必要な追加プロパティ。SSOProperties はAWSRoleARN およびAWSPrincipalARN と一緒に使用します。次のセクションでは、OKTA ID プロバイダーの利用サンプルを示します。

ADFS

ADFS に接続するには、AuthScheme をADFS に設定し、次のプロパティを設定します。

  • User:ADFS ユーザー。
  • Password:ADFS ユーザーのパスワード。
  • SSOLoginURL:SSO プロバイダーのログインURL。

接続文字列の例:

AuthScheme=ADFS; AWSRegion=Ireland; [email protected]; Password=CH8WerW121235647iCa6; SSOLoginURL='https://adfs.domain.com'; AWSRoleArn=arn:aws:iam::1234:role/ADFS_SSO; AWSPrincipalArn=arn:aws:iam::1234:saml-provider/ADFSProvider; S3StagingDirectory=s3://athena/staging;

ADFS 統合

ADFS 統合フローでは、現在ログインしているWindows ユーザーの資格情報で接続します。 ADFS 統合フローを使用するには、User およびPassword を指定せず、それ以外の設定は上記のADFS ガイドと同じ手順を実行してください。

Okta

Okta に接続するには、AuthScheme をOkta に設定し、次のプロパティを設定します。

  • User:Okta ユーザー。
  • Password:Okta ユーザーのパスワード。
  • SSOLoginURL:SSO プロバイダーのログインURL。

Okta クライアントリクエストコンテキストをオーバーライドする信頼されたアプリケーションまたはプロキシを使用する場合、またはMFA を設定している場合は、Okta を使用して認証するためにSSOProperties を組み合わせて使用する必要があります。必要に応じて、以下のいずれかを設定します。

  • APIToken:Okta クライアントリクエストコンテキストをオーバーライドする、信頼されたアプリケーションまたはプロキシ経由でユーザーを認証する場合、これを顧客がOkta 組織で作成したAPI Token に設定します。
  • MFAType:MFA フローを設定した場合、次の対応するタイプのいずれかに設定します:OktaVerify、Email、またはSMS。
  • MFAPassCode:MFA フローを設定した場合は、有効なパスコードに設定します。
    これを空欄または無効な値に設定した場合、Sync App はユーザーのデバイスまたはE メールにワンタイムパスワードチャレンジを発行します。パスコードを受信後、取得したワンタイムパスワードをMFAPassCode 接続プロパティに設定する接続を再度開きます。
  • MFARememberDevice:デフォルトはTrue です。Okta は、MFA が必要な場合にデバイスを記憶させることをサポートします。設定された認証ポリシーに従ってデバイスの記憶が許可されている場合、Sync App はMFA 認証の有効期間を延長するデバイストークンを送信します。MFA を記憶させない場合は、この 変数をFalse に設定してください。

接続文字列の例:

AuthScheme=Okta; AWSRegion=Ireland; [email protected]; Password=CH8WerW121235647iCa6; SSOLoginURL='https://cdata-us.okta.com/home/amazon_aws/0oa35m8arsAL5f5NrE6NdA356/272'; SSOProperties='ApiToken=01230GGG2ceAnm_tPAf4MhiMELXZ0L0N1pAYrO1VR-hGQSf;'; AWSRoleArn=arn:aws:iam::1234:role/Okta_SSO; AWSPrincipalARN=arn:aws:iam::1234:saml-provider/OktaProvider; S3StagingDirectory=s3://athena/staging;

Amazon DynamoDB Connector for CData Sync

SSOExchangeUrl

SAML 応答を処理してサービスの資格情報と交換するために使用するURL。

解説

CData Sync App はここで指定されたURL を使用してSAML 応答を処理し、サービスの資格情報と交換します。 取得した資格情報はSSO 接続時の最後の情報であり、Amazon DynamoDB との通信に使用されます。

Amazon DynamoDB Connector for CData Sync

SSL

このセクションでは、本プロバイダーの接続文字列で設定可能なSSL プロパティの全リストを提供します。


プロパティ説明
SSLServerCertTLS/SSL を使用して接続するときに、サーバーが受け入れ可能な証明書。
Amazon DynamoDB Connector for CData Sync

SSLServerCert

TLS/SSL を使用して接続するときに、サーバーが受け入れ可能な証明書。

解説

TLS/SSL 接続を使用する場合は、このプロパティを使用して、サーバーが受け入れるTLS/SSL 証明書を指定できます。コンピュータによって信頼されていない他の証明書はすべて拒否されます。

このプロパティは、次のフォームを取ります:

説明 例
フルPEM 証明書(例では省略されています) -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE-----
証明書を保有するローカルファイルへのパス。 C:\cert.cer
公開鍵(例では省略されています) -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY-----
MD5 Thumbprint (hex 値はスペースおよびコロン区切り) ecadbdda5a1529c58a1e9e09828d70e4
SHA1 Thumbprint (hex 値はスペースおよびコロン区切り) 34a929226ae0819f2ec14b4a3d904f801cbb150d

これを指定しない場合は、マシンが信用するすべての証明書が受け入れられます。

すべての証明書の受け入れを示すには、'*'を使用します。セキュリティ上の理由から、これはお勧めできません。

Amazon DynamoDB Connector for CData Sync

Firewall

このセクションでは、本プロバイダーの接続文字列で設定可能なFirewall プロパティの全リストを提供します。


プロパティ説明
FirewallTypeプロキシベースのファイアウォールで使われるプロトコル。
FirewallServerプロキシベースのファイアウォールの名前もしくはIP アドレス。
FirewallPortプロキシベースのファイアウォールのTCP ポート。
FirewallUserプロキシベースのファイアウォールに認証するために使うユーザー名。
FirewallPasswordプロキシベースのファイアウォールへの認証に使われるパスワード。
Amazon DynamoDB Connector for CData Sync

FirewallType

プロキシベースのファイアウォールで使われるプロトコル。

解説

このプロパティは、Sync App がFirewallServer プロキシ経由でトンネルトラフィックを使うためのプロトコルを指定します。デフォルトでは、Sync App はシステムプロキシに接続します。この動作を無効化し次のプロキシタイプのどれかで接続するには、ProxyAutoDetect をfalse に設定します。

タイプ デフォルトポート 説明
TUNNEL 80 これが設定されている場合、Sync App はAmazon DynamoDB への接続を開き、プロキシを経由して通信が行われます。
SOCKS4 1080 これが設定されている場合、Sync App はデータをFirewallServer およびFirewallPort で指定されたSOCS 4 プロキシ経由で送信し、接続リクエストが許容されるかどうかを決定します。
SOCKS5 1080 これが設定されている場合、Sync App はデータをFirewallServer およびFirewallPort で指定されたSOCS 5 プロキシ経由で送信します。プロキシに認証が必要な場合には、FirewallUser およびFirewallPassword をプロキシが認識する認証情報に設定します。

HTTP プロキシへの接続には、ProxyServer およびProxyPort ポートを使ってください。HTTP プロキシへの認証には、ProxyAuthScheme、ProxyUser、およびProxyPassword を使ってください。

Amazon DynamoDB Connector for CData Sync

FirewallServer

プロキシベースのファイアウォールの名前もしくはIP アドレス。

解説

ファイアウォールトラバーサルを許容するために設定するIP アドレス、DNS 名、もしくはプロキシホスト名を指定するプロパティです。プロトコルはFirewallType で指定されます。このプロパティとFirewallServer を使って、SOCKS 経由での接続、もしくはトンネリングが可能です。HTTP プロキシへの接続には、ProxyServer を使用します。

Sync App はデフォルトでシステムプロキシを使うので注意してください。他のプロキシを使う場合には、ProxyAutoDetect をfalse に設定してください。

Amazon DynamoDB Connector for CData Sync

FirewallPort

プロキシベースのファイアウォールのTCP ポート。

解説

ファイアウォールトラバーサルを許容するために設定するプロキシベースのファイアウォールのTCP ポート。名前もしくはIP アドレスを指定するには、FirewallServer を使います。FirewallType でプロトコルを指定します。

Amazon DynamoDB Connector for CData Sync

FirewallUser

プロキシベースのファイアウォールに認証するために使うユーザー名。

解説

FirewallUser およびFirewallPassword プロパティは、FirewallType により指定された認証方式に則り、FirewallServer、およびFirewallPort で指定されたプロキシに対しての認証に使われます。

Amazon DynamoDB Connector for CData Sync

FirewallPassword

プロキシベースのファイアウォールへの認証に使われるパスワード。

解説

このプロパティは、FirewallType により指定された認証メソッドに則り、FirewallServer およびFirewallPort で指定されたプロキシに渡されます。

Amazon DynamoDB Connector for CData Sync

Proxy

このセクションでは、本プロバイダーの接続文字列で設定可能なProxy プロパティの全リストを提供します。


プロパティ説明
ProxyAutoDetectこれは、システムプロキシ設定を使用するかどうかを示します。
ProxyServerHTTP トラフィックをルートするためのプロキシのホストネームもしくはIP アドレス。
ProxyPortProxyServer プロキシが起動しているTCP ポート。
ProxyAuthSchemeProxyServer プロキシへの認証で使われる認証タイプ。
ProxyUserProxyServer プロキシへの認証に使われるユーザー名。
ProxyPasswordProxyServer プロキシへの認証に使われるパスワード。
ProxySSLTypeProxyServer プロキシへの接続時に使用するSSL タイプ。
ProxyExceptionsProxyServer 経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリスト。
Amazon DynamoDB Connector for CData Sync

ProxyAutoDetect

これは、システムプロキシ設定を使用するかどうかを示します。

解説

これは他のプロキシ設定よりも優先されるため、カスタムプロキシ設定を使用するにはProxyAutoDetect をFALSE に設定する必要があります。

HTTP プロキシへの接続には、ProxyServer を参照してください。SOCKS やトンネリングなどの他のプロキシには、FirewallType を参照してください。

Amazon DynamoDB Connector for CData Sync

ProxyServer

HTTP トラフィックをルートするためのプロキシのホストネームもしくはIP アドレス。

解説

HTTP トラフィックをルートするためのプロキシのホストネームもしくはIP アドレス。HTTP プロキシへの認証には、Sync App はHTTP、Windows(NTLM)、もしくはKerberos 認証タイプを使用することができます。

SOCKS プロキシを経由して接続する、もしくは接続をトンネルするには、FirewallType を参照してください。

デフォルトで、Sync App はsystem プロキシを使います。他のプロキシを使う場合には、ProxyAutoDetect をfalse に設定します。

Amazon DynamoDB Connector for CData Sync

ProxyPort

ProxyServer プロキシが起動しているTCP ポート。

解説

HTTP トラフィックをリダイレクトするHTTP プロキシが実行されているポート。ProxyServer でHTTP プロキシを指定します。その他のプロキシタイプについては、FirewallType を参照してください。

Amazon DynamoDB Connector for CData Sync

ProxyAuthScheme

ProxyServer プロキシへの認証で使われる認証タイプ。

解説

この値は、ProxyServer およびProxyPort で指定されるHTTP プロキシに認証するために使われる認証タイプを指定します。

Sync App は、デフォルトでsystem proxy settings を使い、追加での設定が不要です。他のプロキシへの接続をする場合には、ProxyServer およびProxyPort に加え、ProxyAutoDetect をfalse に設定します。認証するには、ProxyAuthScheme を設定し、必要な場合にはProxyUser およびProxyPassword を設定します。

認証タイプは、次のどれかになります。

  • BASIC: Sync App はHTTP BASIC 認証を行います。
  • DIGEST: Sync App はHTTP DIGEST 認証を行います。
  • NEGOTIATE: Sync App は認証において有効なプロトコルに応じて、NTLM もしくはKerberos トークンを取得します。
  • PROPRIETARY: Sync App はNTLM もしくはKerberos トークンを発行しません。このトークンを、HTTP リクエストのAuthorization ヘッダーに含める必要があります。

SOCKS 5 認証のような他の認証タイプを使用するには、FirewallType を参照してください。

Amazon DynamoDB Connector for CData Sync

ProxyUser

ProxyServer プロキシへの認証に使われるユーザー名。

解説

ProxyUser および ProxyPassword オプションは、ProxyServer で指定されたHTTP プロキシに対して接続および認証するために使用されます。

ProxyAuthScheme で使用可能な認証タイプを選択することができます。HTTP 認証を使う場合、これをHTTP プロキシで識別可能なユーザーのユーザー名に設定します。Windows もしくはKerberos 認証を使用する場合、このプロパティを次の形式のどれかでユーザー名に設定します。

user@domain
domain\user

Amazon DynamoDB Connector for CData Sync

ProxyPassword

ProxyServer プロキシへの認証に使われるパスワード。

解説

このプロパティは、NTLM(Windows)、Kerberos、もしくはHTTP 認証をサポートするHTTP プロキシサーバーに認証するために使われます。HTTP プロキシを指定するためには、ProxyServer およびProxyPort を設定します。認証タイプを指定するためにはProxyAuthScheme を設定します。

HTTP 認証を使う場合、さらにHTTP プロキシにProxyUser およびProxyPassword を設定します。

NTLM 認証を使う場合、Windows パスワードにProxyUser およびProxyPassword を設定します。Kerberos 認証には、これらを入力する必要があります。

SOCKS 5 認証もしくは、トンネリングは、FirewallType を参照してください。

デフォルトで、Sync App はsystem プロキシを使います。他のプロキシに接続する場合には、これをfalse に設定します。

Amazon DynamoDB Connector for CData Sync

ProxySSLType

ProxyServer プロキシへの接続時に使用するSSL タイプ。

解説

このプロパティは、ProxyServer で指定されたHTTP プロキシへの接続にSSL を使用するかどうかを決定します。この値は、AUTO、ALWAYS、NEVER、TUNNEL のいずれかです。有効な値は次のとおりです。

AUTOデフォルト設定。URL がHTTPS URL の場合、Sync App は、TUNNEL オプションを使います。URL がHTTP URL の場合、コンポーネントはNEVER オプションを使います。
ALWAYS接続は、常にSSL 有効となります。
NEVER接続は、SSL 有効になりません。
TUNNEL接続は、トンネリングプロキシを経由します。プロキシサーバーがリモートホストへの接続を開き、プロキシを経由して通信が行われます。

Amazon DynamoDB Connector for CData Sync

ProxyExceptions

ProxyServer 経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリスト。

解説

ProxyServer は、このプロパティで定義されたアドレスを除くすべてのアドレスに使用されます。セミコロンを使用してエントリを区切ります。

Sync App は、追加設定なしにデフォルトでシステムのプロキシ設定を使います。この接続のプロキシ例外を明示的に構成するには、ProxyAutoDetect をfalse に設定して、ProxyServer およびProxyPort を設定する必要があります。認証するには、ProxyAuthScheme を設定し、必要な場合にはProxyUser およびProxyPassword を設定します。

Amazon DynamoDB Connector for CData Sync

Logging

このセクションでは、本プロバイダーの接続文字列で設定可能なLogging プロパティの全リストを提供します。


プロパティ説明
LogModulesログファイルに含めるコアモジュール。
Amazon DynamoDB Connector for CData Sync

LogModules

ログファイルに含めるコアモジュール。

解説

指定された(';' で区切られた)モジュールのみがログファイルに含まれます。デフォルトではすべてのモジュールが含まれます。

概要はログ ページを参照してください。

Amazon DynamoDB Connector for CData Sync

Schema

このセクションでは、本プロバイダーの接続文字列で設定可能なSchema プロパティの全リストを提供します。


プロパティ説明
Locationテーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリへのパス。
BrowsableSchemasこのプロパティは、使用可能なスキーマのサブセットにレポートされるスキーマを制限します。例えば、BrowsableSchemas=SchemaA,SchemaB,SchemaC です。
Tablesこのプロパティは、使用可能なテーブルのサブセットにレポートされるテーブルを制限します。例えば、Tables=TableA,TableB,TableC です。
Views使用可能なテーブルのサブセットにレポートされるビューを制限します。例えば、Views=ViewA,ViewB,ViewC です。
Amazon DynamoDB Connector for CData Sync

Location

テーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリへのパス。

解説

Sync App のスキーマファイル(テーブルとビューの場合は.rsd ファイル、ストアドプロシージャの場合は.rsb ファイル)を含むディレクトリへのパス。このフォルダの場所は、実行ファイルの場所からの相対パスにすることができます。Location プロパティは、定義をカスタマイズしたり(例えば、カラム名を変更する、カラムを無視するなど)、新しいテーブル、ビュー、またはストアドプロシージャでデータモデルを拡張する場合にのみ必要です。

指定しない場合、デフォルトの場所は"%APPDATA%\\CData\\AmazonDynamoDB Data Provider\\Schema" となり、%APPDATA% はユーザーのコンフィギュレーションディレクトリに設定されます:

Platform %APPDATA%
Windows APPDATA 環境変数の値
Linux ~/.config

Amazon DynamoDB Connector for CData Sync

BrowsableSchemas

このプロパティは、使用可能なスキーマのサブセットにレポートされるスキーマを制限します。例えば、BrowsableSchemas=SchemaA,SchemaB,SchemaC です。

解説

スキーマをデータベースからリストすると、負荷がかかる可能性があります。接続文字列でスキーマのリストを提供すると、 パフォーマンスが向上します。

Amazon DynamoDB Connector for CData Sync

Tables

このプロパティは、使用可能なテーブルのサブセットにレポートされるテーブルを制限します。例えば、Tables=TableA,TableB,TableC です。

解説

テーブルを複数のデータベースからリストすると、負荷がかかる可能性があります。接続文字列でテーブルのリストを提供すると、Sync App のパフォーマンスが向上します。

このプロパティは、作業したいビューがすでにわかっていて、ビューが多すぎる場合に、ビューを自動的にリストする代わりに使用することもできます。

カンマ区切りのリストで使用したいテーブルを指定します。各テーブルは、角かっこ、二重引用符、またはバッククオートを使用してエスケープされた特殊文字列を含む有効なSQL 識別子である必要があります。 例えば、Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space` です。

複数のスキーマまたはカタログを持つデータソースに接続する場合は、複数のカタログやスキーマに存在するテーブル間の曖昧さを避けるため、最後の例のように、このプロパティにテーブルの完全修飾名を指定する必要があることに注意してください。

Amazon DynamoDB Connector for CData Sync

Views

使用可能なテーブルのサブセットにレポートされるビューを制限します。例えば、Views=ViewA,ViewB,ViewC です。

解説

ビューを複数のデータベースからリストすると、負荷がかかる可能性があります。接続文字列でビューのリストを提供すると、Sync App のパフォーマンスが向上します。

このプロパティは、作業したいビューがすでにわかっていて、ビューが多すぎる場合に、ビューを自動的にリストする代わりに使用することもできます。

カンマ区切りのリストで使用したいビューを指定します。各ビューは、角かっこ、二重引用符、またはバッククオートを使用してエスケープされた特殊文字列を含む有効なSQL 識別子である必要があります。 例えば、Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space` です。

複数のスキーマまたはカタログを持つデータソースに接続する場合は、複数のカタログやスキーマに存在するテーブル間の曖昧さを避けるため、最後の例のように、このプロパティにテーブルの完全修飾名を指定する必要があることに注意してください。

Amazon DynamoDB Connector for CData Sync

Miscellaneous

このセクションでは、本プロバイダーの接続文字列で設定可能なMiscellaneous プロパティの全リストを提供します。


プロパティ説明
AutoDetectIndexA boolean indicating if secondary indexes should be automatically detected based on the query used.
FlattenArraysデフォルトで、ネスト配列はJSON 文字列として返されます。 FlattenArrays プロパティはネスト配列のエレメントをフラット化してそれぞれのカラムとするために使われます。ネスト配列から返すエレメントの数に FlattenArrays を設定します。
FlattenObjectsフラット化されたオブジェクトプロパティとしてカラムを表示するには、 FlattenObjects をtrue に設定します。そうでなければ、配列にネストされたオブジェクトはJSON 文字列として返されます。
FlexibleSchemaクエリ結果セットの追加のメタデータをスキャンするには、 FlexibleSchema をtrue に設定します。それ以外の場合、メタデータはそのままです。
GenerateSchemaFilesスキーマを生成して保存するユーザーの好みのタイミングを示します。
IgnoreTypes指定された型のサポートを削除します。例えば、Time です。これらの型は、代わりに文字列として報告されます。
MaximumRequestRetriesリクエストをリトライする最大回数。
MaxRowsクエリで集計またはGROUP BY を使用しない場合に返される行数を制限します。これはLIMIT 句よりも優先されます。
Otherこれらの隠しプロパティは特定のユースケースでのみ使用されます。
PagesizeConfigures the maximum number of items that Amazon DynamoDB evaluates per API request.
PseudoColumnsこのプロパティは、テーブルのカラムとして疑似カラムが含まれているかどうかを示します。
QueryModeThis property indicates how the driver will retrieve the results.
RetryWaitTimeリクエストを再試行するためにprovider が待機する最小時間(ミリ秒数)。
RowScanDepthテーブルで利用可能なカラムを探すためにスキャンする行数の最大値。
SeparatorCharacter階層を示すために使用する記号。
ThreadCount並列スキャンでデータを選択するときに使用するスレッドの数。ThreadCount を1 に設定すると、並列スキャンは無効になります。
Timeoutタイムアウトエラーがスローされ、処理をキャンセルするまでの秒数。
TypeDetectionSchemeカラムのデータ型を決定するための方法を指定します。
UseBatchWriteItemOperationWhen enabled the provider will use BatchWriteItem operation for handling updates and INSERTs. By default, the provider uses ExecuteStatement/BatchExecuteStatement operation. You need to enable BatchWriteItem only when inserting/updating binary/binary-set data. ExecuteStatement/BatchExecuteStatement doesn't support manipulating binary fields.
UseConsistentReadsWhether to alyways use Consistent Reads or not when querying DynamoDb
UserDefinedViewsカスタムビューを含むJSON コンフィギュレーションファイルを指すファイルパス。
UseSimpleNamesテーブルとカラムに簡略名を使用するかどうかを決定するboolean。
Amazon DynamoDB Connector for CData Sync

AutoDetectIndex

A boolean indicating if secondary indexes should be automatically detected based on the query used.

解説

In DynamoDB, you can use secondary indexes to more quickly select data from a given table. By default, we attempt to automatically detect an index to use based on the query criteria. However, this may not always be desirable. To turn off index detecting logic, set the property to false, or if you have control over the query and would prefer to specify the index yourself, use the SecondaryIndexName pseudo column to specify which index to use (if any).

Amazon DynamoDB Connector for CData Sync

FlattenArrays

デフォルトで、ネスト配列はJSON 文字列として返されます。 FlattenArrays プロパティはネスト配列のエレメントをフラット化してそれぞれのカラムとするために使われます。ネスト配列から返すエレメントの数に FlattenArrays を設定します。

解説

デフォルトで、ネスト配列はJSON 文字列として返されます。FlattenArrays プロパティはネスト配列のエレメントをフラット化してそれぞれのカラムとするために使われます。これは短い配列の場合にのみ推奨されます。

ネスト配列から返すエレメントの数にFlattenArrays を設定します。特定されたエレメントはカラムとして返されます。Zero-base のインデックスはカラム名にコンカテネートされます。他のエレメントは無視されます。

例えば、文字列の配列からエレメントのアービトラリー数を返すことができます。

["FLOW-MATIC","LISP","COBOL"]
FlattenArrays が1に設定されている場合、配列は次のテーブルのようにフラット化されます。

カラム名カラム値
languages_0FLOW-MATIC

Amazon DynamoDB Connector for CData Sync

FlattenObjects

フラット化されたオブジェクトプロパティとしてカラムを表示するには、 FlattenObjects をtrue に設定します。そうでなければ、配列にネストされたオブジェクトはJSON 文字列として返されます。

解説

フラット化されたオブジェクトプロパティとしてカラムを表示するには、FlattenObjects をtrue に設定します。そうでなければ、配列にネストされたオブジェクトはJSON 文字列として返されます。プロパティ名は、カラム名を作り出すためにオブジェクト名にアンダースコアでコンカティネイトされます。

例えば、次のネストされたオブジェクトを接続時にフラット化できます。

[
     { "grade": "A", "score": 2 },
     { "grade": "A", "score": 6 },
     { "grade": "A", "score": 10 },
     { "grade": "A", "score": 9 },
     { "grade": "B", "score": 14 }
]
FlattenObjects がtrue に設定されていて、FlattenArrays が1に設定されている場合、配列は次のテーブルのようにフラット化されます。

Column NameColumn Value
grades_0_gradeA
grades_0_score2

Amazon DynamoDB Connector for CData Sync

FlexibleSchema

クエリ結果セットの追加のメタデータをスキャンするには、 FlexibleSchema をtrue に設定します。それ以外の場合、メタデータはそのままです。

解説

クエリ結果セットの追加のメタデータをスキャンするには、FlexibleSchema をtrue に設定します。それ以外の場合、メタデータはそのままです。

Amazon DynamoDB Connector for CData Sync

GenerateSchemaFiles

スキーマを生成して保存するユーザーの好みのタイミングを示します。

解説

このプロパティは、Location で指定されたパスの.rsd ファイルにスキーマをアウトプットします。

有効な設定は次のとおりです。

  • Never:スキーマファイルは生成されません。
  • OnUse:スキーマファイルがまだ存在していない場合に、初めてテーブルが参照されるときにスキーマファイルが生成されます。
  • OnStart:現在スキーマファイルを持たないあらゆるテーブルに対して、接続時にスキーマファイルが生成されます。
  • OnCreate:CREATE TABLE SQL クエリを実行すると、スキーマファイルが生成されます。
ファイルを再生成したい場合には、既存のファイルを削除する必要があることに注意してください。

SQL でスキーマを生成する

GenerateSchemaFiles をOnUse に設定すると、Sync App はSELECT クエリを実行したときにスキーマを生成します。スキーマはクエリのそれぞれの参照されたテーブルに対して生成されます。

GenerateSchemaFiles をOnCreate に設定すると、CREATE TABLE クエリが実行されたときにのみスキーマが生成されます。

接続時にスキーマを生成する

このプロパティのもう一つの使い方は、接続するときにデータベース内のすべてのテーブルのスキーマを取得することです。これには、GenerateSchemaFiles をOnStart に設定して接続します。

Amazon DynamoDB Connector for CData Sync

IgnoreTypes

指定された型のサポートを削除します。例えば、Time です。これらの型は、代わりに文字列として報告されます。

解説

指定された型のサポートを削除します。例えば、Time です。これらの型は、代わりに文字列として報告されます。

Amazon DynamoDB Connector for CData Sync

MaximumRequestRetries

リクエストをリトライする最大回数。

解説

MaximumRequestRetries は、問題が一時的なもの("不明なエラー"、ネットワーク問題、テーブルごとの最大しきい値を超えているなどのエラー)として検出されたときにSync App がリクエストを再試行する最大回数です。 この場合、最初の再試行でSync App はバックオフし、RetryWaitTime で指定された時間待機します。そのリクエストが失敗すると、Sync App は時間を倍にし、Sync App が利用可能な再試行を使い果たすまで再び時間を倍にします。

例えば、RetryWaitTime が2秒に設定され、MaximumRequestRetries が5に設定されている場合、待機時間は次のようになります。0 -> 2 -> 4 -> 8 -> 16 -> 32。

Amazon DynamoDB Connector for CData Sync

MaxRows

クエリで集計またはGROUP BY を使用しない場合に返される行数を制限します。これはLIMIT 句よりも優先されます。

解説

クエリで集計またはGROUP BY を使用しない場合に返される行数を制限します。これはLIMIT 句よりも優先されます。

Amazon DynamoDB Connector for CData Sync

Other

これらの隠しプロパティは特定のユースケースでのみ使用されます。

解説

以下にリストされているプロパティは、特定のユースケースで使用可能です。通常のドライバーのユースケースおよび機能では、これらのプロパティは必要ありません。

複数のプロパティをセミコロン区切りリストで指定します。

統合およびフォーマット

DefaultColumnSizeデータソースがメタデータにカラムの長さを提供しない場合に、文字列フィールドのデフォルトの長さを設定します。デフォルト値は2000です。
ConvertDateTimeToGMT日時の値を、マシンのローカルタイムではなくGMT グリニッジ標準時に変換するかどうかを決定します。
RecordToFile=filename基底のソケットデータ転送を指定のファイルに記録します。

Amazon DynamoDB Connector for CData Sync

Pagesize

Configures the maximum number of items that Amazon DynamoDB evaluates per API request.

解説

Configures the maximum number of items that Amazon DynamoDB evaluates (not necessarily the number of matching items) per api request. If Amazon DynamoDB processes the number of items up to the limit while processing the results, it stops the operation and returns the matching values up to that point, along with a pagination token used to pull the rest of the data. Also, if the processed dataset size exceeds 1 MB before Amazon DynamoDB reaches this page size limit, it stops the operation and returns the matching values up to the limit. The default value is -1 which lets the server calculate the maximum page size.

Amazon DynamoDB Connector for CData Sync

PseudoColumns

このプロパティは、テーブルのカラムとして疑似カラムが含まれているかどうかを示します。

解説

Entity Framework ではテーブルカラムでない疑似カラムに値を設定できないため、この設定はEntity Framework で特に便利です。この接続設定の値は、"Table1=Column1, Table1=Column2, Table2=Column3" の形式です。"*=*" のように"*" 文字を使用して、すべてのテーブルとすべてのカラムを含めることができます。

Amazon DynamoDB Connector for CData Sync

QueryMode

This property indicates how the driver will retrieve the results.

解説

  • Adaptive - Determine which mode to use depending on ThreadCount and the SQL statement filters.
  • PartiQL - Rebuilds the supported parts of the given SQL statement in the PartiQL equivalent.
  • SCAN - Full scan the table in parallel (number of threads is controled by ThreadCount).

Amazon DynamoDB Connector for CData Sync

RetryWaitTime

リクエストを再試行するためにprovider が待機する最小時間(ミリ秒数)。

解説

このプロパティの値は、次回の再試行までの待機時間を決定するために、再試行ごとに2倍になります。最大再試行回数はMaximumRequestRetries で指定します。

Amazon DynamoDB Connector for CData Sync

RowScanDepth

テーブルで利用可能なカラムを探すためにスキャンする行数の最大値。

解説

テーブルのカラムはテーブル行をスキャンすることで決定される必要があります。この値はスキャンされる行数の最大値を設定します。

大きい値を設定すると、パフォーマンスが低下する場合があります。小さい値を設定すると、特にnull データがある場合には、データ型を正しく判定できない場合があります。

Amazon DynamoDB Connector for CData Sync

SeparatorCharacter

階層を示すために使用する記号。

解説

DynamoDB で、Maps やList 属性のように構造をフラット化するためには、カラムを区切る印となる因子が必要です。 この値が"." の場合、カラムがaddress.city という名前で返されたときには、city という名の子がマップされた属性であることを示します。 データにすでにピリオドを属性名として使っているカラムが存在する場合には、記号を区別するためにSeparatorCharacter を設定してください。

Amazon DynamoDB Connector for CData Sync

ThreadCount

並列スキャンでデータを選択するときに使用するスレッドの数。ThreadCount を1 に設定すると、並列スキャンは無効になります。

解説

並列スキャンでは、取得プロセスを複数のスレッドに分割することでデータをより速く取得できます。 これにより、Amazon DynamoDB でデータをスキャンするときのパフォーマンスが大幅に向上します。しかし、これはシングルスレッドよりも はるかに速くテーブルの読み取りユニットを消費します。ThreadCount を増やす前に、使用可能なコア、帯域幅、およびテーブル の読み取りユニットを検討してください。

Amazon DynamoDB Connector for CData Sync

Timeout

タイムアウトエラーがスローされ、処理をキャンセルするまでの秒数。

解説

Timeout が0に設定されている場合は、操作がタイムアウトしません。処理が正常に完了するか、エラー状態になるまで実行されます。

Timeout の有効期限が切れても処理が完了していない場合は、Sync App は例外をスローします。

Amazon DynamoDB Connector for CData Sync

TypeDetectionScheme

カラムのデータ型を決定するための方法を指定します。

解説

NoneTypeDetectionScheme をNone に設定した場合は、すべてのカラムは文字列型で返されます。Note:None に設定した場合でも、Header=True の場合は、カラム名は引き続きスキャンされます。
RowScanTypeDetectionScheme をRowScan に設定した場合は、ヒューリスティックにデータ型を決定します。RowScanDepth ではスキャンする行数を決定します。値が指定されない場合は、デフォルトでRowScan が使用されます。

Amazon DynamoDB Connector for CData Sync

UseBatchWriteItemOperation

When enabled the provider will use BatchWriteItem operation for handling updates and INSERTs. By default, the provider uses ExecuteStatement/BatchExecuteStatement operation. You need to enable BatchWriteItem only when inserting/updating binary/binary-set data. ExecuteStatement/BatchExecuteStatement doesn't support manipulating binary fields.

解説

When enabled the provider will use BatchWriteItem operation for handling updates and INSERTs. By default, the provider uses ExecuteStatement/BatchExecuteStatement operation. You need to enable BatchWriteItem only when inserting/updating binary/binary-set data. ExecuteStatement/BatchExecuteStatement doesn't support manipulating binary fields.

Amazon DynamoDB Connector for CData Sync

UseConsistentReads

Whether to alyways use Consistent Reads or not when querying DynamoDb

解説

This parameter is not supported on global secondary indexes. If you scan or query using a secondary index, Constistent Reads will not be used even if the property is set to true.

Amazon DynamoDB Connector for CData Sync

UserDefinedViews

カスタムビューを含むJSON コンフィギュレーションファイルを指すファイルパス。

解説

ユーザー定義ビューは、UserDefinedViews.json というJSON 形式のコンフィギュレーションファイルで定義されています。Sync App は、このファイルで指定されたビューを自動的に検出します。

また、複数のビュー定義を持ち、UserDefinedViews 接続プロパティを使用して制御することも可能です。このプロパティを使用すると、指定されたビューのみがSync App によって検知されます。

このユーザー定義ビューのコンフィギュレーションファイルは、次のようにフォーマットされています。

  • 各ルートエレメントはビューの名前を定義します。
  • 各ルートエレメントには、query と呼ばれる子エレメントが含まれており、この子エレメントにはビューのカスタムSQL クエリが含まれています。

次に例を示します。

{
	"MyView": {
		"query": "SELECT * FROM Account WHERE MyColumn = 'value'"
	},
	"MyView2": {
		"query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
	}
}
UserDefinedViews 接続プロパティを使用して、JSON コンフィギュレーションファイルの場所を指定します。次に例を示します。
"UserDefinedViews", C:\Users\yourusername\Desktop\tmp\UserDefinedViews.json
指定されたパスは引用符で囲まれていないことに注意してください。

Amazon DynamoDB Connector for CData Sync

UseSimpleNames

テーブルとカラムに簡略名を使用するかどうかを決定するboolean。

解説

Amazon DynamoDB テーブルおよびカラムでは、 通常のデータベースでは使うことが認められていない特殊記号・文字を名前に使うことができます。UseSimpleNames を使用すると、Sync App を従来のデータベースツールでより簡単に使用できるようになります。

UseSimpleNames をtrue に設定し、返されるテーブル名およびカラム名をシンプルにします。表示されるテーブル名 およびカラム名においてアルファベット文字およびアンダースコアのみを有効とするネーミングスキームを強制します。 英数字以外の文字はすべて、アンダースコアに変換されます。

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 23.0.8839