►
From YouTube: Jeremy Likness CosmosDB and .NET Core
Description
Jeremy Likness discusses ComosDB and what makes it a truly unique and flexible NoSQL cloud offering. Learn about the CosmosDB support for multiple APIs including table storage and MongoDB, all accessible from .NET and .NET Core applications.
Further Details
Introduction to CosmosDB: https://aka.ms/on-net-cosmos
Try CosmosDB for free: https://aka.ms/on-net-freedb
Explore CosmosDB (project): https://github.com/JeremyLikness/explore-cosmos-db
Create a Free Account (Azure): https://aka.ms/azft-net
A
Okay,
it's
another
episode
of
the
on
dinette
show
and
today
we're
going
to
be
talking
about
cosmos
DB
with
Jeremy
lick,
nice
he's
a
cloud
developer
advocates
focusing
on
dotnet
and
yeah.
How
about
you
tell
us
a
little
bit
about
what
you
do
as
a
cloud
developer
advocate
and
how
cosmos
DB
fits
into
that
sure.
B
So
I
like
to
sort
of
flip
the
word
around
write
advocate
for
developers
in
the
cloud,
but
that's
a
little
redundant,
so
it's
so
to
be
specific.
There's
there's
three
main
areas
that
we
focus
on.
One
is
community
and
that's
getting
out
to
user
groups,
conferences,
meetups,
meeting
developers
where
they're
at
understanding
what
they're
looking
to
do,
what
pain
points
are
and
and
just
listening
to
developers
right,
bringing
it
back
here
to
Redmond
so
that
we
understand
what's
going
on
in
the
cloud.
Definitely
yeah,
that's
a
huge
piece.
B
The
second
piece
is
content
and
that's
producing
videos
producing
documentation,
creating
QuickStart
sample
applications,
ways.
People
can
get
engaged
with
the
different
product
offerings
that
we
have
and
then
the
final
piece
is
connecting
back
with
engineering
teams
and
bringing
that
feedback
back
to
the
teams,
letting
them
know
what
we're
seeing
in
the
field
and
also
a
lot
of
times.
We
want
to
understand
problems
that
engineering
teams
are
solving
so
that
we
can
go
out
and
share
that
here's.
This
new
feature
that
thing
you've
been
looking
for
is
is
out.
A
So
you
know
I've
cosmos
DB,
it's
obviously
a
database
right,
so
I've
been
using
databases
for
many
years,
and
my
frame
of
reference,
which
is
probably
not
completely
different
from
our
audiences
frame
of
reference,
is
you've
got
you
know:
relational
sequel,
server.
You
know
primary
Keys
foreign
key
keys
table
schemas.
That
kind.
A
B
A
B
So
it's
definitely
closer
to
no
sequel,
okay
and
I.
Wouldn't
call
it
relational,
but
what's
interesting
is
there's
a
huge
misconception
and
document
databases,
because
their
schema
lists
there's
this
idea
that
maybe
you
can't
build
relationships
into
your
Cori
models,
and
maybe
it's
not
as
easy
to
index
and
that's
really
where
the
power
of
a
lot
of
no
sequel
engines
comes
from.
Is
that
they're
optimized
to
store
a
lot
of
data
and
to
index
over
fields?
B
But
when
I
talk
about
cosmos
DB,
one
of
the
nuances
with
the
way
it
works
is
that
you
get
to
pick
your
own
interface
pick
your
own
API,
there's
four
AP
is
that
it
supports
anyone.
Familiar
with.
No
sequel
is
probably
heard
of
MongoDB,
for
example,
so
we
have
a
driver
that
you
create
cosmos,
DB
and
it
looks
like
MongoDB.
However,
we
recognize
that
there's
a
lot
of
developers
very
used
to
sequel
syntax.
So,
even
though,
behind
the
scenes
it's
a
document
database
and
the
schema
can
change.
What
the
document
DB
interface
provides.
B
Is
the
ability
to
query
using
a
sequel
syntax
which
is
refreshing
to
a
lot
of
developers,
because
they
don't
have
to
learn
a
whole
new
query
syntax
to
interact
with
the
database?
It's
still
storing
documents,
but
I
can
do
select
star
from
group
I
and
use
the
the
types
of
query
syntaxes
that
I'm
used
to
okay.
A
That
makes
sense
also
from
an
azure
perspective.
I
know:
we've
had
Azure
table,
which
we
already
talked
about.
There's
document
DB
and
now
cosmos,
DB
and
maybe
there's
some
other
things,
do
I
need
to
choose
which
one
of
those
that
I
want
to
use
or
is
there
now
like
a
clear
choice
which
one
I
should
be
using
if
I'm
building
a
new,
app
sure.
B
So,
in
most
cases,
if
you're
building
an
app
cosmos,
DB
should
be
the
clear
choice
we
do
have.
As
your
table,
storage,
cosmos
DB
provide
a
table
storage,
we
call
it
the
the
premium
experience
because,
unlike
the
regular
table
storage,
which
is
tied
to
that
storage
account
with
the
cosmos
DB,
you
get
access
to.
Some
of
the
other
features
that
cosmos
DB
has
such
as
geo
replication
and
setting
consistency,
levels
and
really
you
know,
I
talked
to
people
about
it.
B
Serverless
is
a
huge
term
right,
it's
hard
to
turn
around
without
bumping
into
someone,
who's,
who's,
saying
it,
and
it's
it's
really
about
less
server
and
the
idea
behind
cosmos
DB
is
to
host
your
data
in
a
way
that
you
care
less
about
the
server
and
let
Bajor
team
worry
about
that
for
you,
so
you
can
set
it
up,
configure
hit
some
switches
and
dials,
and
then
it
pretty
much
manages
that
experience
that
scale
that
consistently
consistency
level
for
you.
So
you
talked
about
document
DB.
It
supports
that
interface.
B
You
talked
about
table
storage,
it
supports
that
interface.
It
supports
a
DB
interface
and
it
supports
what's
called
gremlin,
which
I
always
just
like
to
bring
up
a
conversation,
because
it's
a
cool
name
for
an
interface,
but
that's
what
we
call
a
graph
interface.
Oh
I,
see,
and
that's
more.
You
know.
The
canonical
example
is
I.
Have
airports
and
I
have
flight
paths
so
I'm
storing
in
a
database
that
understands
connections
between
nodes?
And
this
is
an
interface
that
lets.
You
query
like
what
the
path
looks
like
and
information
about
that
got.
A
It
now
back
to
the
Azure
table
API,
because
that's
the
one
that
I've
kind
of
grown
up
with
from
an
azure
perspective
to
know
and
love.
Now,
if,
if
I'm
building
my
next
app
and
I
go
into
Azure,
do
I
start
from
that
kind
of
Azure
storage
node
to
make
it
cosmos
DB
or
do
I
start
from
somewhere
else.
You.
B
A
B
B
If
we
go
into
cosmos
DB,
the
first
thing
you're
going
to
do
is
just
give
it
a
globally
unique
name.
This
is
how
you're
gonna
access
it
as
an
endpoint
and
we'll
call
this
just
my
net
cosmos
DB
and
it's
gonna
check
that
make
sure
it's
unique
and
then
here's
that
the
key
step,
what
I've
done
is
I've
opened.
This
drop-down
and
I
can
pick
the
sequel
like
interface,
which
is
document
DB,
DB,
gremlin
or
table
storage.
B
Now
the
important
thing
to
note
is:
if
I
create
table
storage,
the
API
is
going
to
look
identical,
I
can
take
my
old
applications
and
just
update
the
connection
string
and
they'll
work
out
of
the
box.
What's
different
is
the
way
I
can
manage
this
within
the
the
portal
and
I've
got
for
my
link,
shortening
tool
that
I
wrote:
I
have
a
cosmos
DB
that
is
already
in
existence.
Actually
we'll
go
to
this
one
and
I
just
wanted
to
show
you
quickly
what
that
experience
looks
like
it's
Thomey,
oh
you're,
creating
a
new
one.
B
So
if
you
look
at
the
overview,
we've
got
this
region
configuration
and
it's
showing
me
all
the
different
regions
and
right
now,
I'm
just
in
eastern
us,
because
I'm
based
out
of
Atlanta
but
let's
say
I,
started
to
get
a
lot
of
users
using
my
tool
over.
You
know
here
in
Europe
or
over
here
in
the
eastern
section.
I
can
literally
go
in
and
click
those
on
and
start
lighting,
those
up
for
geo
replication.
So.
B
Ain't
sure
Wow,
so
you've
got
that
the
other
interesting
thing
and
I
don't
want
to
go
on
too
much
of
a
tangent,
because
there's
a
lot
of
science
and
math
behind
what
these
mean,
but
we're
used
to
what
we
would
call
strong
consistency.
That's
the
sequel
database
I
commit
something
to
that
table.
I
have
a
consistent
and
experience
reading
it
back,
there's
a
extreme
on
the
other
side
of
eventual
consistency,
and
this
is
more
what
I
call
sort
of
the
the
Twitter
scenario
as
important
as
I.
Think
my
tweet
might
be.
B
Someone
on
the
other
side
of
the
world
doesn't
necessarily
have
to
see
it
within
milliseconds
of
me
posting
it.
So
that
goes
out
to
a
database
and
fans
out
and
eventually
is
consistent.
We've
got
five
levels
that
you
can
choose
of
consistency,
so
you
can
even
dial
how
fine-grained
that
experience
is
for
replicating
data
and
how
quickly
it
does
that
make
sense.
A
B
So
I
mean
I'd,
say
there's
two
levels
to
that:
there's
definitely
a
jump
going
from
a
sequel,
relational
database
to
a
schema
list
database,
and
it
takes
some
some
getting
used
to
the
nice
part
about.
It,
though,
is
most
developers
working
with
sequel,
probably
use
some
sort
of
object.
Relational
mapper,
right
entity
framework
is
something
that
I
see
a
lot
of
places
because,
ultimately,
we
program
in
classes
the
database
is
tables
with
relationships.
B
What's
nice
about
the
cosmos,
DB
experience,
whether
you're
using
document
DB
or
you're,
using
the
DB
interface,
which
is
the
two
I'm
most
familiar
with
you-
can
create
a
class
and
it'll
automatically
serialize
the
properties
of
that
class.
So
it
makes
it
very
easy
to
create
that
instance
of
an
object
that
you're
gonna
save
to
the
database.
I.
A
See
so
I
have
a
question
on
that
which
is
like
I,
said
I'm
using
Azure
table
today.
I
have
a
you
know:
poco
right,
plain
old,
CLR
object
and
in
order
for
it
to
interact
with
Azure
table,
I
have
to
make
it
a
it
has
to
derive
from
a
table
entity
right
if
I,
if
I
recall
correctly,
and
so
with
this
model,
does
it
have
to
does
it
have
to
change
the
inheritance
relationship?
My
class
I
have
to
change
it
in
any
way
to
participate,
or
does
it
just
work
automatic.
B
A
B
It
doesn't
care,
so
you
can
create
and
I
actually
have
a
github
project
called
explore.
Cosmos
DB
that
uses
the
USDA
database
that's
publicly
available
from
the
USDA
website,
and
the
classes
themselves
are
in
a
class
library
that
have
they're
just
standalone,
poco
classes
right
and
it
just
understands
how
to
map
and
what
what
I
like
about
it.
You're
gonna
have
a
different
experience.
B
If
you
go
with
versus
document
DB,
because
those
are
different
drivers,
it's
transparent
as
far
as
the
driver
doesn't
know,
am
I
talking
to
a
database
or
a
cosmos
DB
hosted
in
Azure,
but
the
way
those
drivers
are
written.
The
DB
driver,
for
example,
gives
you
ways
to
either
work
with
structured
data
or
non
structured
data.
So
you
can
do
if
people
are
familiar
with
JSON
right
as
a
document
format.
It
provides
a
set
of
libraries
that
let
you
use
sort
of
like
the
dynamic
keyword
right
and
yeah.
B
B
Think
you
know
the
the
key
points
for
for
cosmos
DB
when
it
came
out.
I
was
interested
in
it,
but
for
me
to
actually
understand
something:
I
have
to
have
a
real-world
project.
In
my
case,
I
decided
to
use
a
link
shortening
tool
so
that
I
could
track
metadata
and
basically
capture
things
like.
When
does
someone
click
on
a
link?
Are
they
clicking
on
it
from
Twitter
or
LinkedIn?
B
So
I
was
able
to
build
that
experience
out,
but
what
I
found
from
that
is
having
been
working
with
databases
for
20
years,
the
experience
of
being
able
to
spin
something
up
within
literally
minutes
and
installing
a
driver.
Putting
a
connection
string
in
and
your
off
to
the
races
is
a
is
a
great
experience.
There
are
some
caveats,
for
example,
the
developers
used
to
working
with
MongoDB
there's,
not
a
hundred
percent
support
for
all
of
the
types
of
queries
you
can
do
with
MongoDB.
B
A
B
Know
if
your
experience
is
working,
fine,
if
you
don't
need
to
take
advantage
of
the
new
ones,
for
example,
I'm
running
off
the
old
table,
storage
experience
for
storing
my
links
so
I'm
using
the
map,
the
short
URL
to
the
log
URL
that
works
fine
on
the
old
table,
storage,
I'm,
storing
the
rich
metadata
that
I'm
data
mining
basically
doing
analysis.
That's
what's
going
into
cosmos
DB,
so
in
my
case
I'm
using
two
versions,
there
is
a
migration
tool
that
they
provide.
B
So
if
you're
looking
at
migrating
from
a
table
or
even
from
a
sequel
database
that
tool
basically
lets
you
choose
what
you
want
to
migrate
and
how
it's
mapping
into
what's
called
collections,
which
are
the
containers
for
data.
So
you
can
do
that
and
it
just
really
depends
on
you
know:
what
is
your
API?
What
are
your
SLA
s?
Do
you
want
to
be
in
the
business
of
disaster
recovery
yourself,
or
do
you
want
a
service
to
do
that
for
you
etc?.
A
B
I
haven't
done
as
much
with
cousteau,
but
with
power.
Bi
have
a
full
dashboard
that
I
connected
and
it
was
a
straightforward
experience.
I
literally
gave
it
the
endpoint
in
the
secret
to
access
and
what's
you
can
get
a
key
generator?
That's
just
a
read-only
key.
So
even
if
someone
grabs
that
they
can't
modify
your
database,
it
will
go
through
the
document
and
because
it's
schema
lists.
Some
documents
may
have
certain
properties,
some
don't
but
it'll
scan
through
those
and
come
up
with.
B
You
know:
here's
the
possible
column
names
and
then
the
experience
is
just
like
when
you've
connected
to
a
sequel
database.
You
pick
columns,
pivots
group
buys
aggregates,
and
you
have
that
full
experience
of
setting
up
line,
graphs
and
bar
charts
and
and
everything
else.
So
it's
actually
a
pretty
great
experience
once
you
have
that
data
there.
Okay.
A
B
Absolutely
and
visual
studio
experience
depends
on
the
interface
that
you
choose
so
you're,
either
going
to
install
most
likely.
Some
people
are
going
to
use
the
table
storage
but
you're
gonna,
install
document
DB,
which
is
through
the
nougat
package
manager
or
you're,
going
to
install
the
DB
okay.
So
you
can
create
the
cosmos
database
from
the
command
line
or
from
an
explorer
there's
a
number
of
ways,
but
the
way
you're
going
to
interact
with
it
is
thought.
The
end
of
the
day
can
be
through
that
driver
package
that
you
install
in
Visual
Studio
right
now.
A
Is
this
mostly
for
server-side
applications
so
like
for
you
know
asp.net
websites
and
services,
or
would
there
ever
be
a
scenario
where
I'd
have
I
guess
what
you
would
call
a
two-tier
architecture?
What
I
would
where
I
would
actually
call
directly
into
cosmos,
DB
from
either
a
mobile
app
or
a
desktop
application?
That's.