'How to setup amazon timestream in php?

I have found the documentation for it here. I have PHP SDK installed. Now when I go through the documents there is not so much in detail about the PHP one. I have the following questions:

  1. Here how can I specify the $client
$result = $client->createDatabase([
    'DatabaseName' => '<string>', // REQUIRED
    'KmsKeyId' => '<string>',
    'Tags' => [
        [
            'Key' => '<string>', // REQUIRED
            'Value' => '<string>', // REQUIRED
        ],
        // ...
    ],
]);
  1. Is there any good documents or videos regarding the timestream in PHP from where I can get some help.


Solution 1:[1]

There are two client classes. One for writing and one for reading.

TimestreamWriteClient

https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.TimestreamWrite.TimestreamWriteClient.html

and

TimestreamQueryClient

https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.TimestreamQuery.TimestreamQueryClient.html

You can use the function createTimestreamQuery and createTimestreamWrite on the $sdk object to instantiate those classes.

Solution 2:[2]

A sample Timestream client and query below.

// Create client
$client = new \Aws\TimestreamQuery\TimestreamQueryClient([    
    'version' => 'latest',
    'region' => AWS_REGION,  /* eg: eu-west-1 */
    'endpoint' => AWS_TIMESTREAM_ENDPOINT, /* eg: https://query-cell3.timestream.eu-west-1.amazonaws.com */
    'credentials' => new \Aws\Credentials\Credentials(AWS_KEY, AWS_SECRET)
]);

// Perform a basic query with the client
$client->query([
    'QueryString' => 'select * from "db_timestream"."tbl_usage_logs"', 
    'ValidateOnly' => true,
]);

If you receive endpoint warning, such as "The endpoint required for this service is currently unable to be retrieved"

You can find endpoint using AWS CLI command,

aws timestream-query describe-endpoints --region eu-west-1

Sample response:

{
    "Endpoints": [
        {
            "Address": "query-cell3.timestream.eu-west-1.amazonaws.com",
            "CachePeriodInMinutes": 1440
        }
    ]
}

One can create TimestreamWriteClient and write records in a similar way.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2