dotnet 6.0 macOS DynamoDBテーブル Describe取得

dotnet 6.0 macOS DynamoDBテーブル Describe取得

.NET6 C#を使って、 DynamoDB テーブルの詳細情報を取得します。

dotnet new console の後、 nugetからAWSSDK.DynamoDBv2パッケージをAddします。

dotnet add package AWSSDK.DynamoDBv2 --version 3.7.3.26

パッケージ内のDescribeTableAsync()を使えば、 テーブルの詳細情報を取り出せます。

DynamoDB上に「test-table」テーブルを作成

DynamoDB テーブル作成

パーティションキー = partition-num
ソートキー = sort-moji

このDynamoDBで作成したテーブルの詳細情報を.NET6 C#を使って取り出します

using Amazon;
using Amazon.DynamoDBv2;

var dynamodb = new AmazonDynamoDBClient("アクセスキー","シークレット", RegionEndpoint.APNortheast1);
try{
    var describeTask = dynamodb.DescribeTableAsync("test-table");
    var describe = describeTask.Result;
    Console.WriteLine("テーブルARN={0}",describe.Table.TableArn);
    foreach (var att in describe.Table.AttributeDefinitions){
        Console.WriteLine("AttributeDefinition KeyName={0} Type={1}",att.AttributeName,att.AttributeType.Value);            
    }
    Console.WriteLine("テーブル作成日={0}", describe.Table.CreationDateTime.ToString());
    Console.WriteLine("総レコード={0}", describe.Table.ItemCount);
    Console.WriteLine("TableSizeBytes={0}", describe.Table.TableSizeBytes);
} catch(Exception _e){
    Console.WriteLine(_e);
}

実行結果

テーブルの、 作成日・総レコード数・テーブルの サイズなども取得できています

MySQL View一覧 (show views)

VIEW一覧

MySQLMariaDBでは、テーブル一覧は「show tables;」出来ますが、Viewの場合「show views;」はERRORです。

information_schema.tablesにはテーブルやView・インデックスの情報が入っているのでそこから取り出せます。

SYSTEM VIEW, BASE TABLE, VIEW 一覧

SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE FROM information_schema.tables;

TABLE_NAMEにテーブルやVIEWが混ざって表示されるのでWHEREでVIEW指定すると下記のSQLでVIEWだけ一覧できます。

SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE FROM information_schema.tables WHERE TABLE_TYPE = 'VIEW';

Ubuntu 20.04 MariaDBインストールと外部接続設定

MariaDB外部から接続する方法

AWS EC2Ubuntu 20.04MariaDBをインストールする

aptを最新版にUpgradeする

sudo apt upgrade

aptのパッケージ一覧を更新する

sudo apt update

MariaDBをインストールする

sudo apt install mariadb-server

MariaDBの初期設定スクリプトを開始する

sudo mysql_secure_installation

MariaDB最初の起動

sudo mariadb

上記が実行で↓下記Errorが出る場合

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

MariaDBが起動できていないので下記コマンドで起動する

sudo systemctl start mariadb
sudo mariadb
「Server version: 10.3.34-MariaDB-0ubuntu0.20.04.1 Ubuntu 20.04」と出た
「Server version: 10.3.34-MariaDB-0ubuntu0.20.04.1 Ubuntu 20.04」と出た

exitを入力しmariadbコマンドツールから抜ける

MariaDBサーバーに外部から接続できる設定を先にしておく

viエディタで50-server.cnf(mysqld.conf)を編集

sudo vi /etc/mysql/mariadb.conf.d/50-server.cnf 

/etc/mysql/mariadb.conf.dここに50-server.cnfが無い場合mysqld.confを編集する

28行目あたりにbind-address = 127.0.0.1があるのでコメントアウトする

外部から接続できるユーザーを作成

「sudo mariadb」ここに入ってからユーザー作成する下記コマンドを入力する

CREATE USER "user1"@"%" IDENTIFIED BY 'password1';
SET PASSWORD FOR "user1"@"%" = PASSWORD('password1');
GRANT ALL ON *.* TO "user1"@"localhost";
grant all privileges on *.* to "user1"@"%";

上記の2行目はいらないかも

user1というユーザーを作成し、パスワードはpassword1

MariaDB 起動|終了|再起動

sudo systemctl start mariadb #起動
sudo systemctl stop mariadb  #終了
sudo systemctl restart mariadb #再起動

ユーザー作成と設定が終わったので、MariaDBをrestart再起動しておく

MariaDBサーバーへ外部から接続する

mysql -h127.0.0.1 -uuser1 -ppassword1 データベース名