Esempio n. 1
0
        public async Task <List <DataCollectionMetrics> > GetDataCollectionMetricsAsync(DataContainer container)
        {
            using (var client = new DynamoDBClientBuilder(container.ConnectionString).GetClient()) {
                var tables = await client.GetTables().ConfigureAwait(false);

                var metrics = new List <DataCollectionMetrics>();
                foreach (var table in tables)
                {
                    var request = new DescribeTableRequest(table);

                    var response = await client.DescribeTableAsync(request).ConfigureAwait(false);

                    var tbl = response.Table;
                    metrics.Add(new DataCollectionMetrics
                    {
                        Name         = tbl.TableName,
                        UsedSpaceKB  = tbl.TableSizeBytes / 1000,
                        TotalSpaceKB = tbl.TableSizeBytes / 1000,
                        RowCount     = tbl.ItemCount,
                    });
                }

                return(metrics);
            }
        }
Esempio n. 2
0
        public async Task <(List <DataCollection>, List <DataEntity>)> GetSchemaAsync(DataContainer container)
        {
            using (var client = new DynamoDBClientBuilder(container.ConnectionString).GetClient())
            {
                var tableNames = await client.GetTables().ConfigureAwait(false);

                var dataEntities = new List <DataEntity>();
                foreach (var tableName in tableNames)
                {
                    dataEntities.AddRange(await GetSchema(tableName, client, container));
                }

                var dataCollections = tableNames.Select(t => new DataCollection(container, t));

                return(dataCollections.ToList(), dataEntities.ToList());
            }
        }