in csharp/Microsoft.Azure.Databricks.Client.Sample/SampleProgram.UnityCatalog.cs [10:93]
private static async Task TestUnityCatalogApi(DatabricksClient client)
{
var catalogAttributes = new CatalogAttributes()
{
Name = "9E2B6ACC-2624-4D22-8616-D9808A53EEF3",
Comment = "Catalog created during C# client sample run"
};
PrintDelimiter();
Console.WriteLine("Listing metastores");
var metastoresList = await client.UnityCatalog.Metastores.List();
foreach (var metastore in metastoresList)
{
Console.WriteLine($"\t{metastore.MetastoreId}, {metastore.Name}");
}
PrintDelimiter();
Console.WriteLine("Creating a catalog...");
var catalog = await client.UnityCatalog.Catalogs.Create(catalogAttributes);
Console.WriteLine($"Created a catalog of name: {catalog.Name}");
PrintDelimiter();
Console.WriteLine("Listing catalogs...");
var catalogsList = await client.UnityCatalog.Catalogs.List();
foreach (var catalogItem in catalogsList)
{
Console.WriteLine($"\t{catalogItem.Name}, {catalogItem.CatalogType}");
}
PrintDelimiter();
Console.WriteLine("Listing schemas in created catalog...");
var schemasList = (await client.UnityCatalog.Schemas.List(catalog.FullName)).ToArray();
foreach (var schema in schemasList)
{
Console.WriteLine($"\t{schema.Name}");
}
PrintDelimiter();
Console.WriteLine("Listing system schemas...");
var systemSchemasList = (await client.UnityCatalog.SystemSchemas.List(catalog.MetastoreId)).ToArray();
foreach (var schema in systemSchemasList)
{
Console.WriteLine($"\t{schema.Schema}, {schema.State}");
}
PrintDelimiter();
Console.WriteLine("Deleting schemas...");
var schemasToDelete = schemasList
.Select(x => x.Name)
.Except(systemSchemasList.Select(x => x.Schema))
.ToList();
foreach (var schema in schemasToDelete)
{
var fullSchemaName = $"{catalog.Name}.{schema}";
Console.WriteLine($"Deleting schema {fullSchemaName}...");
await client.UnityCatalog.Schemas.Delete(fullSchemaName);
}
Console.WriteLine("Schemas deleted");
PrintDelimiter();
Console.WriteLine($"Deleting created catalog {catalog.Name}...");
await client.UnityCatalog.Catalogs.Delete(catalog.Name);
Console.WriteLine("Catalog deleted");
Console.WriteLine("Listing Regsitered Models");
var (registeredModels, _) = await client.UnityCatalog.RegisteredModels.List();
foreach (var model in registeredModels)
{
Console.WriteLine($"\t{model.MetastoreId}, {model.Name}");
}
PrintDelimiter();
var fullName = "main.default.revenue_forecasting";
Console.WriteLine("Listing Regsitered Models");
var (modelVersionsList, _) = await client.UnityCatalog.ModelVersion.List(fullName);
foreach (var model in modelVersionsList)
{
Console.WriteLine($"\t{model.MetastoreId}, {model.CatalogName}");
}
PrintDelimiter();
}