16个版本

0.3.0 2022年4月3日
0.2.12 2021年9月28日
0.2.11 2021年8月21日
0.2.10 2021年7月16日
0.2.0 2021年3月21日

#660 in 数据库接口


用于 3 crates

MIT 许可证

175KB
4.5K SLoC

mlmd

mlmd Documentation Actions Status Coverage Status License: MIT

ml-metadata的Rust实现。

此crate支持用于ml-metadata-v1.7.0或更高版本的schema版本8。

示例

use mlmd::MetadataStore;
use mlmd::metadata::EventType;
use tempfile::NamedTempFile;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    // Creates metadata store.
    let db_file = NamedTempFile::new()?;
    let sqlite_uri = format!("sqlite://{}", db_file.path().to_str().unwrap());
    let mut store = MetadataStore::connect(&sqlite_uri).await?;

    // Creates an artifact.
    let artifact_type_id = store.put_artifact_type("DataSet").execute().await?;
    let artifact_id = store.post_artifact(artifact_type_id).uri("/foo/bar").execute().await?;

    // Creates an execution.
    let execution_type_id = store.put_execution_type("Training").execute().await?;
    let execution_id = store.post_execution(execution_type_id).execute().await?;

    // Links the above execution with the artifact.
    store.put_event(execution_id, artifact_id).ty(EventType::Input).execute().await?;

    // Gets executions.
    let executions = store.get_executions().execute().await?;
    assert_eq!(executions.len(), 1);
    assert_eq!(executions[0].id, execution_id);

    Ok(())
}

限制

以下功能尚未支持

  • gRPC客户端
  • input_typeoutput_type 字段中的 Execution

以下功能不计划支持

  • gRPC服务器
  • 数据库模式迁移

ml-metadata 参考

依赖项

~31–46MB
~813K SLoC