Helpex - Trao đổi & giúp đỡ Đăng nhập

Nghiên cứu của DZone: Nhà phát triển và Cơ sở dữ liệu: Những điều bạn cần biết

Phan Bích Hằng
· 17:00 21/10/2018
10 giờ trước

Để thu thập thông tin chi tiết về trạng thái hiện tại và tương lai của hệ sinh thái cơ sở dữ liệu, chúng tôi đã nói chuyện với các giám đốc điều hành CNTT từ 22 công ty về cách khách hàng của họ đang sử dụng cơ sở dữ liệu ngày hôm nay và cách họ thấy việc sử dụng và các giải pháp thay đổi trong tương lai.

Chúng tôi hỏi họ, "Các nhà phát triển cần kiến ​​thức hoặc kỹ năng cơ sở dữ liệu nâng cao nào?" Đây là những gì họ nói với chúng tôi:

SQL

  • 1) Có thể không cần kiến ​​thức mới chuyên biệt cho nền tảng của chúng tôi. 2) Để nâng cao hơn, hãy xây dựng  kiến thức SQL tốt hơn . SQL đã tồn tại qua nhiều thế hệ. Cộng đồng = hệ sinh thái phần mềm. Đã ký trên cơ sở người dùng được đào tạo. Loại bỏ sự phức tạp của nhà phát triển. 
  • SQL vẫn là ngôn ngữ hữu ích và được sử dụng nhiều nhất. Tìm hiểu nó và sử dụng nó.  Một số lập trình có liên quan khi viết ứng dụng để xử lý dữ liệu cho mô hình ML hoặc giao diện hoặc hiển thị bản đồ. NodeJS và Python cho các nhà khoa học dữ liệu. Điều khác biệt là cách bạn truy cập dữ liệu. 
  • Xu hướng các nhóm chức năng chéo với các nhà phát triển tổng quát viết các thay đổi mã cơ sở dữ liệu. Đừng quên về cơ sở dữ liệu. Tìm hiểu cách trở thành một nhà phát triển SQL tốt hơn.  Hãy phá bỏ cái silo của việc chỉ là một nhà phát triển ứng dụng. Tham khảo ý kiến ​​nhiều hơn trong việc liên hệ với kiến ​​trúc sư dữ liệu hoặc quản trị viên cơ sở dữ liệu. Dành thời gian tự học về khả năng của kho dữ liệu. Hiểu các công cụ để bạn biết công cụ phù hợp để giải quyết vấn đề. 
  • Cố gắng và thực sự hiểu khả năng của một nhà phát triển. Biết SQL, đừng bỏ lại nó, hãy nghĩ đến việc thêm một số NoSQL mà không bỏ SQL.  Bạn có rất nhiều đòn bẩy với những người đang thử mọi thứ và không thành công. Đây là cách bạn học. Buổi gặp mặt và Diễn đàn là một nơi tuyệt vời để tìm hiểu những gì đang hoạt động và những gì không hoạt động. 
  • SQL vẫn rất quan trọng. Đó là một kỹ năng cơ sở dữ liệu cốt lõi.  Về mặt AI, các nhà phát triển có lợi thế hơn với Python. Có thể nhặt kỹ năng. Java vẫn phổ biến từ góc độ mã từ khía cạnh phân tích. Nút ở phía hoạt động. Vị trí được thêm vào ứng dụng. Công cụ dự đoán với vị trí được tích hợp sẵn. Các chức năng và kiểu dữ liệu không gian địa lý trở nên phổ biến hơn. 
  • Học máy, trí tuệ nhân tạo,  SQL , NoSQL. 
  • Điều rất quan trọng là phải hiểu SQL và học cách viết kịch bản : DBA phải trở thành nhà phát triển phần mềm. Họ cũng nên biết cách lập mô hình dữ liệu một cách thích hợp để xử lý quy mô, sự nhanh nhạy và các thay đổi. Cuối cùng, hiểu các đặc điểm của cơ sở dữ liệu cho các dịch vụ khác nhau. Biết đâu là giải pháp phù hợp cho vấn đề bạn đang cố gắng giải quyết. 
  • Có nhiều loại nhà phát triển, vì vậy nó phụ thuộc. Hầu hết các nhóm phát triển có sự kết hợp của nhiều kiểu nhà phát triển khác nhau. Tầm nhìn của tôi thực sự là một nhà phát triển doanh nghiệp điển hình không cần  bất kỳ  kiến thức cơ sở dữ liệu nâng cao nào - họ chỉ nên nghĩ về việc giải quyết vấn đề trong tầm tay và nền tảng dữ liệu sẽ xử lý phần còn lại. Nói như vậy, tôi nghĩ rằng tất cả các nhà phát triển, bao gồm cả các nhà phát triển front-end, đều được hưởng lợi từ việc hiểu các nguyên tắc tổ chức dữ liệu,  có cơ sở cơ bản với SQLvà có một công cụ phân tích dữ liệu yêu thích bao gồm khả năng đánh giá chất lượng dữ liệu của họ. Tất cả dữ liệu đều bẩn và các ứng dụng nghiêm trọng cần phải đáp ứng điều này. Nếu bạn là một nhà phân tích dữ liệu, đã đến lúc làm quen với dữ liệu lớn và các phương tiện máy học. Bạn có thể không cần chúng hôm nay, nhưng sớm muộn gì chúng cũng sẽ là một phần công việc của bạn.

Các loại cơ sở dữ liệu

  • 1)  Hiểu khái niệm về các loại cơ sở dữ liệu khác nhau và loại nào khả thi nhất trong mỗi loại.  2) Hãy thử các công nghệ. Quay hộp cát đám mây và bắt đầu chơi sau vài phút. Thực hành với các cơ sở dữ liệu khác nhau. 3) Tận dụng mọi nguồn lực tốt ngoài kia.
  • Đảm bảo công việc và đầu tư vào công nghệ học tập có thể tận dụng các bộ kỹ năng được phát triển bằng công nghệ mới. Bạn không cần phải biết một cái gì đó hoàn toàn mới. Mở rộng những gì bạn quen thuộc. Cần có một tiêu chuẩn là hậu duệ của SQL và MapReduce. Sự phát triển của đường cong học tập. Làm quen với mô hình đồ thị tổng quát ở mức độ khái niệm. Đảm bảo bạn đã nắm được các nguyên tắc cơ bản và chọn những thứ khác nếu cần. 
  • Điều quan trọng là phải hiểu sự cân bằng giữa tính nhất quán và tính khả dụng khi ngày càng có nhiều cơ sở dữ liệu được phân phối trong tự nhiên.  Điều này cho phép bạn quyết định tốt hơn chiến lược cơ sở dữ liệu nào phù hợp với nhu cầu của bạn và hiểu chế độ lỗi cơ sở dữ liệu của bạn trông như thế nào. Ngoài ra, hiểu biết sâu sắc và kỹ lưỡng về lập chỉ mục là rất quan trọng để đảm bảo hoạt động trơn tru của cơ sở dữ liệu của bạn. Chúng tôi muốn nói rằng kiến ​​thức kỹ lưỡng về lập chỉ mục là một yêu cầu cơ bản để làm việc hiệu quả với cơ sở dữ liệu.

Khác

  •  Biết cách tận dụng nền tảng mà họ đang sử dụng.  SQL trên Teradata rất khó tối ưu hóa. Cần biết cách tối ưu hóa cho nền tảng mà họ đang làm việc. Sử dụng Meet-Ups và Google để tìm hiểu với tốc độ thay đổi.
  • Thay vì kiến ​​thức bí truyền nâng cao, các nhà phát triển nên  hiểu rằng họ có thể sử dụng nhiều kỹ thuật và giao diện vào cơ sở dữ liệu.  Bỏ theo dõi chế độ xem đây là một ứng dụng cơ sở dữ liệu. Quyền truy cập tệp có thể có ý nghĩa hơn khi được tăng cường với phân tích phát trực tuyến.
  • Điều tốt nhất có thể làm là  làm việc trên một hệ thống sản xuất cho một cơ sở dữ liệu cụ thể , xem nó trong quá trình sản xuất, xem các mô hình dữ liệu tác động đến nó như thế nào. Hãy nghĩ về chuyển đổi dự phòng, thời gian hoạt động, cách mọi thứ hỏng hóc, cách mọi thứ hoạt động. Theo đúng nghĩa của DevOps. Mặc dù nó có thể gây đau đớn, nhưng nó sẽ đáng giá về lâu dài. Bạn sẽ kết thúc việc sản xuất và viết mã tốt hơn.
  • Tìm hiểu hệ điều hành và môi trường mà cơ sở dữ liệu phù hợp.  Có toàn bộ công nghệ mạng xung quanh cơ sở dữ liệu. Với lượng lớn dữ liệu phi quan hệ, bạn cần biết cách truy cập - hiểu biết về hệ thống và mạng.
  • Đó sẽ là một thế giới đa ngôn ngữ. Di chuyển đến nơi dữ liệu phù hợp nhất cho trường hợp sử dụng. Tìm hiểu cách hiệu quả nhất để di chuyển và định hình dữ liệu để dữ liệu có sẵn càng sớm càng tốt và giao dịch chính xác nhất có thể . Thành thạo trong việc nắm bắt dữ liệu thay đổi. Di chuyển các thay đổi từ cơ sở dữ liệu một cách hiệu quả nhất có thể. Nhanh nhẹn cho bất kỳ mục tiêu nào bạn muốn di chuyển dữ liệu.
  • Hãy quan sát xem bạn sẽ đi đến đâu trái ngược với nơi bắt đầu và hãy suy nghĩ kỹ về điều đó.  Đừng bắt đầu với điều dễ dàng nhất. Suy nghĩ về sự phát triển và tiến hóa. Các nhà phát triển không thể xây dựng ứng dụng và ném nó vào tường, hãy nghĩ về vòng đời của ứng dụng và cách bạn sẽ vận hành nó trong 3-5 năm tới. Chọn các giải pháp linh hoạt và cho phép bạn hoạt động hiệu quả.
  • Các khái niệm kiến ​​thức cơ sở dữ liệu nâng cao xung quanh hệ thống phân tán. Các nhà phát triển không tin vào vật lý. Nếu hai máy chủ không ở cạnh nhau, thì phải mất thời gian để dữ liệu di chuyển. Đừng mong đợi truy cập tức thời. Hiểu vật lý và cách hệ thống phân tán hoạt động và khoa học máy tính xung quanh việc quản lý điều đó.  Có một sự thừa nhận để loại bỏ rất nhiều lớp vấn đề.
  • Các nhà phát triển được yêu cầu cung cấp chức năng mới càng nhanh càng tốt để đáp ứng nhu cầu kinh doanh ngày càng phát triển. Điều này có nghĩa là họ cần học hỏi và áp dụng các phương pháp luận mới để phát triển (thực hành phát triển nhanh) cũng như các công cụ và kỹ thuật mới để đưa những cải tiến mới này ra thị trường nhanh hơn - CI / CD, đám mây, v.v. Cơ sở dữ liệu cũng đã phát triển trong vài năm qua . Các nhà phát triển cần hiểu những đổi mới đã diễn ra ở đây và tận dụng nó. Với các nền tảng, sức mạnh của SQL và tính linh hoạt của lược đồ của JSON được kết hợp với nhau để mang lại khả năng lập trình dễ dàng. Với sự tích hợp sâu trong tất cả các ngôn ngữ lập trình phổ biến (Spring framework cho các nhà phát triển Java và Linq hỗ trợ cho .Net), điều đó khiến các nhà phát triển ngày nay cũng cần nghĩ đến việc triển khai và đặc biệt là quy mô, tại thời điểm thiết kế và phát triển . Những lựa chọn mà họ đưa ra ở giai đoạn này có ý nghĩa sâu sắc về mức độ mở rộng của ứng dụng và cách nó có thể đáp ứng nhu cầu của doanh nghiệp. Vì vậy, dễ dàng triển khai, tính thân thiện với đám mây và đa đám mây, mở rộng liền mạch tại chỗ sang đám mây, nhân rộng trung tâm dữ liệu chéo để có tính khả dụng 5 9 giây, truy cập cùng một ứng dụng từ thiết bị di động đều trở thành những cân nhắc mà các nhà phát triển cần suy nghĩ khi nó liên quan đến việc chọn cơ sở dữ liệu phù hợp. 
  • Họ có thể nên tìm hiểu về các tập lệnh di chuyển - các tập lệnh cần thiết để di chuyển cơ sở dữ liệu từ phiên bản này sang phiên bản tiếp theo. Ngoài ra, nếu các nhà phát triển có thể viết mã bằng C ++ và C #, họ có thể viết mã bằng các ngôn ngữ như SQL. Đó là một ngôn ngữ tương đối đơn giản để học và có rất nhiều công cụ của bên thứ ba có thể trợ giúp. Nếu nó nghe có vẻ báng bổ, nó không có nghĩa là như vậy. Trong Khảo sát dành cho nhà phát triển cơ sở dữ liệu năm 2018 của chúng tôi, 76% người được hỏi có các nhà phát triển trong nhóm của họ, những người làm việc trên cả ứng dụng và cơ sở dữ liệu. Vì vậy, phát triển cơ sở dữ liệu đã được coi là một phần của phát triển phần mềm hiện đại và chúng tôi thấy các thuật ngữ như 'nhà phát triển ngăn xếp đầy đủ' được sử dụng ngày càng nhiều. Miễn là các công cụ họ sử dụng để phát triển cơ sở dữ liệu được cắm vào và tích hợp với cùng một cơ sở hạ tầng mà họ sử dụng để phát triển ứng dụng, nó sẽ trở thành tiêu chuẩn.
  • Để triển khai ngăn xếp của chúng tôi, các  nhà phát triển có thể tải xuống và triển khai ngăn xếp mã nguồn mở và tự làm quen một cách nhanh chóng . Ngăn xếp bao gồm bốn thành phần: 1) Tác  nhân máy chủ hướng plugin để thu thập và báo cáo các chỉ số từ các hệ thống khác. Chúng tôi hiện có hơn 160 đại lý (và đang phát triển) để mang lại các chỉ số. 2) Cơ sở dữ liệu chuỗi thời gian được xây dựng từ đầu để xử lý tải lượng ghi và truy vấn cao. 3) Giao diện hoàn chỉnh cho nền tảng của chúng tôi với ngôn ngữ giống SQL để truy vấn dữ liệu. 4) Công cụ xử lý dữ liệu phát trực tuyến thời gian thực có thể phân tích cả dữ liệu hàng loạt và luồng để phát hiện các mẫu và kích hoạt cảnh báo.

Đây là người chúng tôi đã nói chuyện:

  • Jim Manias , Phó Chủ tịch,  Các khái niệm Hệ thống Nâng cao, Inc.
  • Tony Petrossian , Giám đốc, Kỹ thuật,  Dịch vụ Web Amazon
  • Dan Potter , Phó Giám đốc Tiếp thị và Quản lý Sản phẩm,  Attunity
  • Ravi Mayuram , SVP Kỹ thuật và CTO,  Couchbase
  • Patrick McFadin , VP Quan hệ nhà phát triển,  DataStax
  • Sanjay Challa , Giám đốc Tiếp thị Sản phẩm Cấp cao,  Datical
  • Matthew Yeh , Giám đốc Tiếp thị Sản phẩm,  Delphix
  • OJ Ngô , CTO,  DH2i
  • Navdeep Sidhu , Trưởng bộ phận Tiếp thị Sản phẩm,  InfluxData
  • Ben Bromhead , CTO và Đồng sáng lập,  Instaclustr
  • Jeff Fried , Giám đốc Quản lý Sản phẩm,  InterSystems
  • Dipti Borkar , Phó chủ tịch Tiếp thị Sản phẩm,  Kinetica
  • Jack Norris , Dữ liệu VP và Ứng dụng,  MapR
  • Will Shulman , Giám đốc điều hành,  mLab
  • Philip Rathle , Phó chủ tịch phụ trách sản phẩm,  Neo4j
  • Ariff Kasam , VP Products và  Josh Verrill , CMO,  NuoDB
  • Simon Galbraith , Giám đốc điều hành và Đồng sáng lập,  Redgate Software
  • David Leichner , CMO và  Arnon Shimoni , Giám đốc Tiếp thị Sản phẩm,  SQream
  • Todd Blashka , COO và  Victor Lee , Giám đốc Quản lý Sản phẩm,  TigerGraph
  • Mike Freedman , CTO và Đồng sáng lập, và  Ajay Kulkarni , Giám đốc điều hành và Đồng sáng lập,  TimescaleDB
  • Chai Bhat , Giám đốc Tiếp thị Sản phẩm,  VoltDB
  • Neil Barton , CTO,  WhereScape
  • 10 hữu ích 0 bình luận 6.8k xem chia sẻ

    Có thể bạn quan tâm