Get started developing apps with SQL Server 2017 running on Linux

[음악] 안녕하세요, 제 이름은 David Salgado입니다 저는 데이터 팀의 제품 관리자로 일하고 있습니다

이 동영상에서 나는 다음 단계를 거쳐 Linux에서 SQL Server를 사용하는 응용 프로그램입니다 상상할 수 있듯이 응용 프로그램의 경우 Linux 또는 Windows에서 SQL Server에 데이터를 호스팅하고 있습니다 하루가 끝나면 연결 고리가 될 것입니다 그리고 온 – 프레미스 (On-Premises)의 경우 클라우드에 있는지 여부는 중요하지 않습니다 그 연결 문자열에 대한 변경 사항 일뿐입니다

그러나 개발자는 모든 것을 설치해야 할 수도 있습니다 너의 기계, 그게 우리가 너를 따라갈거야 설치, 비용, 연결 및 배포 방법 OSX 또는 Linux가 주 OS가 될 것이라고 가정합니다 그리고 내가 설치를 말할 때, 나는 Windows와 마찬가지로, 우리는 기본 설치 패키지를 가지고 있습니다 이제 Linux 사용자라면 Suse, Red Hat 또는 우분투 패키지

우분투 사용자 인 경우, Linux에서 MS SQL Server를 사용할 수 있습니다 물론 Windows와 Linux 모두에서 Docker Images를 사용합니다 일단 데이터베이스를 설치하면, 당신이 그것을 관리해야합니다 그리고 보통 Windows에서는, SQL Server Management Studio, SSMS를 사용하면됩니다 Windows의 SSMS를 사용하여 Linux의 SQL Server에 연결할 수 있습니다

기계 그러나 우리는 당신에게 보여주고 싶은 두 가지 새로운 도구를 가지고 있습니다 하나는 Visual Studio 코드 확장입니다 또 하나는 SQL Server 용 명령 줄 도구입니다 일단 설치하고 모든 데이터베이스로 데이터베이스를 만들면 테이블, 우리는 연결 지점이 있습니다

해당 연결 문자열을 어디에 만들지, 특정 드라이버를 사용하여 응용 프로그램을 데이터베이스 서버 우리는 모든 언어와 그 이상을위한 커넥터를 가지고 있습니다 또한 언어를 찾지 못하면 개인적 취향에 대해 알려면 알려주십시오 그 다음에는 귀하의 응용 프로그램이 끝나면 오늘 데모에서 NodeJS를 만드는 방법을 보여 드리겠습니다 Linux의 Docker Image에서 호스팅 될 응용 프로그램입니다 그리고 우리는 몇 가지 관리 도구를 사용하여 얘기 했어

그러나 또한 저는 여러분에게 몇 가지 다른 특징들을 보여 드릴 것입니다 SQL 서버 SQL Server를 스위스 육군 칼으로 생각하면 상점에 보관할 때 정보를 검색하고, 우리는 단지 이쑤시게를 사용하고 있습니다 우리는 우리가 사용할 수있는 모든 기능을 이용하지 않습니다 특히 이번 새 버전의 SQL Server에서, 모든 프로그래밍 기능에 액세스 할 수 있습니다

엔터프라이즈, 개발자 또는 표준 버전의 제품에서 사용할 수 있습니다 그러나 SQL Server 2016을 사용하는 경우, 서비스 팩 1을 설치해야 함을 알려드립니다 11 월에 발표했습니다 일단 설치하면 다음과 같은 모든 기능에 액세스 할 수있게됩니다 SQL Server의 모든 에디션

데모로 가자 그래서 우리는 리눅스에 SQL Server를 설치하는 것으로 시작합니다 이를 위해 몇 가지 옵션이 있습니다 그리고 우리는이 측면에서 귀하의 선호하는 언어 이 경우 우리는 macOS에서 NodeJS로 작업 할 것입니다

그래서 여기를 클릭하면 OS에 대한 지침이 있습니다 그래서 나는 약간의 시간을 절약하기 위해 이미 그 단계들을 거쳤습니다 내가 여기 온다면, Docker 옵션을 선택했습니다 그래서 내가 부두 이미지를 확인한다면, 우리는 여기서 sql-server-linux를 갖게 될 것입니다 또한 서버 플러스가있는 다른 이미지가 있습니다

도구 플러스 커넥터 및 프레임 워크 하지만이 경우 기본 기계를 사용할 것입니다 그리고 저는 이미 여기에 당신을 보여줄 수있는 컨테이너를 만들었습니다 그것은 SQL Server Linux 기반 이미지입니다 그리고 나는 이미 그것을 만들었 기 때문에 sql-employees라고 불렀습니다

데이터베이스와 나는 이미 약간의 정보로 데이터를 채웠다 그 컨테이너를 시작하자 docker가 sql_employees를 시작한다 그리고 시작하자 마자, 지금은 데이터베이스를 관리해야합니다 우리는 정보를 삽입하거나 색인을 생성하거나 우리가해야 할 일은 뭐든간에

그리고 그 전에 제가 말씀 드렸듯이 명령 줄 도구를 사용할 수 있습니다 mssql 나는 localhost 인 서버에 연결할 것이다 나는 암호 EgunOn17로 사용자 sa를 사용할 것이다 바스크에서 좋은 아침을 의미합니다

그리고이 쿼리를 실행하고 @@ version을 선택합니다 SQL Server에 연결하는 중입니다 그러나 공통 선 도구를 사용하는 대신, 나는 Visual Studio Code를 사용할 것이다 우리는 무료이며 마켓 플레이스에서 찾을 수 있습니다 그리고이 확장으로, SQL 파일로 인식되어 SQL 파일로 인식되면, 아래에서 볼 수 있듯이 SQL 명령을 사용할 수 있습니다

이런, 내가 연결하는 데 사용할 수있는 SQL 명령 [LAUGH] 연결 해제, 쿼리 실행 등 그래서 Connect를 클릭하면 이미 작성한 모든 프로파일 목록을보십시오 이것은 확장 기능을 말하는 것일뿐입니다 내 서버는 어디에 있습니까? 어떤 데이터베이스를 사용하고 싶습니까? 사용자는 무엇입니까? ㅋ ㅋ ㅋ ㅋ ㅋ ㅋ 나는 VideoAMP를 여기에두고있다

이제 VideoAMP에 연결해야합니다 따라서 Visual Studio 코드에서 쿼리를 선택하고 실행할 수 있습니다 이것은 명령 행에서 실행하는 것과 같습니다 그리고 이것은 우리에게 당신이 어떤 것을 가지고 있다는 것을 보여주는 또 하나의 간단한 질의 일뿐입니다 데이터를 데이터베이스에 저장합니다

그래서 우리가 이것을 보았 으면 다음 단계는 응용 프로그램을 연결하는 것입니다 나는 리눅스에서 SQL Server로 만들었습니다 이 경우 Node를 사용하고 있습니다 그리고 Node를 사용하면 지루하고 지루한 것은 실제로 TDS에서옵니다 약어는 [웃음]을 사용하여 SQL Server에 연결하는 프로토콜

커넥터를 만드는 CCS입니다 연결하고 완료 할 데이터베이스 이 프로그램을 실행하면, 우 – 후, 여기에 작은 변화를 만들어 봅시다 당신은 그것이 실제로 일어나는 것을 봅니다 노드 헬로우 월드

우 – 후, 연결 완료 슈퍼 쉽습니다 그러나 일반적으로 드라이버를 직접 사용하지는 않습니다 개발자는 일반적으로 ORM을 사용합니다NET을 사용하는 경우 [INAUDIBLE] 프레임 워크를 사용하고 있습니다 노드를 사용하고 있다면, 아마도 Sequelize를 사용할 것입니다 그래서 우리는 여기서 같은 프로토콜을 사용합니다 나는 Sequelize를 사용하고, Sequelize는 지루한 것을 사용합니다 나는 어떤 데이터를위한 것인지 지정한다

내가 연결할 데이터베이스 그리고 이것은 웹 사이트에서 찾을 수있는 매우 간단한 코드입니다 사용자를 생성하고, 작업을 생성하며 사용자와 작업에 약간의 작업을 수행합니다 그것을 지정하면, 데이터 변경, 날짜 변경 및 작업 삭제 등이 있습니다 따라서이 샘플을 실행하면 노드 ORMdemo가 실행됩니다

여기 아래에 그것이 효과가 있다는 것을 알게 될 것입니다 그리고 출력물에 콘솔로 전송 된 모든 정보 또한 저는 몇 가지 기능을 공유 할 것이라고 말했습니다 일반적으로 개발자가 인식하지 못합니다 개발자로서, 우리가 저장하기 때문에 우리는 모른다

정보를 검색하고 정보를 검색합니다 먼저,이 JSON 기능에 대해 생각해 봅시다 개발자는 쿼리를 실행합니다 이 쿼리는 우리에게 테이블을 되돌려줍니다 그런 다음 테이블을 통과합니다

더 많은 정보를 수집하기 위해 데이터베이스로 돌아갑니다 우리가 가지고있는 정보 그래서 우리는 서버를 가지고 앞뒤로 질의를합니다 우리는 사물의 애플리케이션 측면에서 필요한 계층을 구축하십시오 그래서 그렇게하는 대신 JSON 또는 XML 및 실제로 서버에서 계층을 반환합니다

그래서 우리는 객체와 객체 간의 관계를보다 잘 표현할 수 있습니다 데이터베이스에서 오는 정보만으로 그래서, 당신도 알다시피, 같은 쿼리 JSON에서 정보를 반환하기를 원합니다 그리고 이것이 내가 사용할 루트 노드입니다 내가 처형하게 해줘

그리고 물론 이것은 당신에게 약간의 변경을 요구할 것입니다 응용 프로그램 측면 신청서를 보낼 준비가되어 있어야하고 데이터베이스에서 JSON을받습니다 그러나 이것은 매우 편리합니다 여기에서 볼 수 있듯이, 이것은 테이블의 정보 일뿐입니다

내가 지정한 노드와 그러나 나는 항상 내가 할 수있는 형식으로 조금 더 연주 할 수있다 데이터베이스에서 나를 보내야합니다 여기서 볼 수 있듯이, 나는 사원 개체를 만들었고, 나는 만들었습니다 연락처 엔티티이며 응용 프로그램 쪽에서 사용할 수 있습니다 저장하지 마십시오

그리고 이것은 여러분이 사용할 수있는 기능이었습니다 하지만 응용 프로그램 측면에서 무언가를 변경해야합니다 다음은 Columnstore 인덱스입니다 애플리케이션 측에서 아무 것도 변경할 필요가 없습니다 우선이 표를 만들어 보겠습니다

이것은 기본적으로 이름에서 알 수 있듯이, 5 백만 행의 테이블과이 쿼리를 실행할 것입니다 이 쿼리를 실행할거야 우리는 합계를 계산하는 데 얼마나 많은 시간이 걸리는지 알고 있습니다 5 백만 행이있는 테이블에있는 기둥 중 하나의 나는 그것을 실행한다 그리고 이것은 900 밀리 초 정도 될 것입니다

나는 이것을 다시 실행 시켜서 이것이 꽤 일치한다는 것을 알 수있다 900 밀리 초 이제 사용할 수있는이 기능을 사용할 것입니다 SQL Server에서 오래 동안, 그러나 최신 버전에서는 개선되었습니다 CLUSTERED COLUMNSTORE INDEX를 작성 중입니다

분석적인 워크로드와 특정 쿼리에 필요한 시간과 공간이 줄어 듭니다 우리는 그것이 창조 된 것을 봅니다 시간을 측정해서 다시 같은 쿼리를 할 것입니다 900 밀리 초였습니다 지금은 17 세입니다

그리고 나는 그것을 반복해서 할 것입니다 7 밀리 초 보시다시피, SQL Server에는 매우 많은 기능이 있습니다 응용 프로그램 측면에서 사용할 수있는 응용 프로그램 더 많은 생산성을 얻으려고하는 개발자로서 당신은 데이터베이스에 대해 작업하고 있습니다 또한 서버 측에서 몇 가지 작업을 수행 할 수 있습니다

이 columnstore 인덱스처럼 당신은 성능면에서 놀라 울 수 있습니다 보안, 분석 등 그리고 우리는 슬라이드로 돌아 왔습니다 그리고 이제 우리는 우리의 응용 프로그램을 Linux의 SQL Server에 연결하고, 유일하게 누락 된 단계는 해당 애플리케이션을 배치하는 것입니다 그리고 환경, 회사 ​​및 회사에 따라, 구내 서버에 배포하기로 결정할 수 있습니다

SQL Server 또는 SQL 데이터웨어 하우스와 유사합니다 Docker 기반 컨테이너에 게시 할 수 있습니다 Kubernetes 또는 Swarm과 같은 인프라 또는 Window Azure Services를 사용하여 클라우드에 게시 할 수 있습니다 어쩌면 당신은 다른 클라우드 환경 설정이나 심지어 당신의 hoster를 가질 수도 있습니다

이 비디오가 당신이 할 수있는 일에 대한 좋은 개요 였기를 바랍니다 Linux의 SQL Server 및 필요한 모든 단계 설치, 관리, 연결 및 배포 할 수 있습니다 더 많은 정보가 필요하거나 우리가 가지고있는 샘플 코드를 찾고 싶다면 사용, akams/sqldev 찾아보기하십시오 거기에 모든 정보가 있습니다

이 비디오를 시청 해 주셔서 감사합니다 [음악]